나의 문제풀이 function solution(arr, divisor) { let result = []; for(let i=0; i a-b) }else{ return [-1] } } 문제를 통과하였으나. 코드가 너무 길다. filter. 고차함수를 사용하여 좀더 간결하게 나타낼수있다. 간결하다고 좋은 코드는 아니지만, 고차함수와 삼항연산자를 사용하니 가독성이 더 좋다. function solution(arr, divisor) { let filter = arr.filter(el => el%divisor ===0) return filter.length!==0? filter.sort((a,b)=>a-b) : [-1] }
재귀..재귀로 풀면 될것같아서 재귀로 실행했다. 그치만. 계속 내 답은 0을 토해낸다. function solution(num) { let count = 0; if(num ===1){ return count; } if(count>=500){ return -1 } if(num %2 === 0){ num = num /2 count ++ }else if(num%2 === 1){ num = (num * 3) + 1 count ++ } return solution(num) } 이코드의 문제점은? let count = 0이기에. 계속해서 count = 0이되어 설령 계산이 잘되었다해서 return 값은 0이 될수밖에없다. 다시 도전해보자. 1. while문 풀이 function solution(num) { let ..
첫풀이 통과는했으나 테이스케이스에서 걸렸다, 아무래도 풀이가 잘못된것같다. function solution(n, m) { let result = []; //큰수 작은 수를 구해준다. let bigger = 0; let smaller = 0; let G; let L; if(n>m){ bigger = n; smaller = m }else{ smaller = n bigger = m } //나누어떨어지면, n은 최대공약수 for(let i=1 ; im ? n : m for(let i=1; i
알고리즘이 너무약해서 우선은 쉬운것부터 차근히 시작하기로. 천천히 성장하자 프로그래머스 Level1 1번문제 풀수있을까 했는데 다행히 풀었다! 나의 풀이 function solution(lottos, win_nums) { let answer = []; let matchcount = 0; //0개 //2개 let zerocount = 0; //6개 //2개 // 0 인 값을 제외시킨다. // for(let i=0; i !v).length; const maxCount = minCount + zeroCount; return [rank[maxCount], rank[minCount]]; } 나는 아직 기본 문법으로만 풀고있는데 rank로 미리 배열을 만들어주는 방법도있었다. 다른사람의좋은코드도 잘흡수하자