diff --git "a/level-1/x\353\247\214\355\201\274-\352\260\204\352\262\251\354\235\264-\354\236\210\353\212\224-n\352\260\234\354\235\230-\354\210\253\354\236\220.js" "b/level-1/x\353\247\214\355\201\274-\352\260\204\352\262\251\354\235\264-\354\236\210\353\212\224-n\352\260\234\354\235\230-\354\210\253\354\236\220.js" index ef43801..f73bddb 100644 --- "a/level-1/x\353\247\214\355\201\274-\352\260\204\352\262\251\354\235\264-\354\236\210\353\212\224-n\352\260\234\354\235\230-\354\210\253\354\236\220.js" +++ "b/level-1/x\353\247\214\355\201\274-\352\260\204\352\262\251\354\235\264-\354\236\210\353\212\224-n\352\260\234\354\235\230-\354\210\253\354\236\220.js" @@ -20,3 +20,13 @@ function solution(x, n) { } return answer; } + +//정답 3 - jaewon1676 +function solution(n) { + let str = ''; + for (let i=0; i { const sqrt = Math.sqrt(num) for (let i = 1; i <= sqrt; i++) if (num % i === 0) count += 1 return Number.isInteger(sqrt) ? (count - 1) * 2 + 1 : count * 2 -} \ No newline at end of file +} + +//정답 3 - jaewon1676 +function solution(left, right) { + var answer = 0; + + for (left; left<=right; left++){ + // left의 제곱근이 정수면 약수의 개수는 홀수 + if (Number.isInteger(Math.sqrt(left))){ + answer -= left + } else { + answer += left + } + } + return answer; +} + // \ No newline at end of file diff --git "a/level-1/\354\247\235\354\210\230\354\231\200-\355\231\200\354\210\230.js" "b/level-1/\354\247\235\354\210\230\354\231\200-\355\231\200\354\210\230.js" index f186146..0a0ee80 100644 --- "a/level-1/\354\247\235\354\210\230\354\231\200-\355\231\200\354\210\230.js" +++ "b/level-1/\354\247\235\354\210\230\354\231\200-\355\231\200\354\210\230.js" @@ -9,4 +9,12 @@ function solution(num) { //정답 2 - chaerin-dev function solution(num) { return num % 2 == 0 ? "Even" : "Odd"; +} + +//정답 3 - jaewon1676 +function solution(num) { + let answer + (num % 2 == 0 ? answer = 'Even' : answer = 'Odd') + // 삼항 연산자를 사용하여 참일경우 Even, 거짓일 경우 Odd를 반환. + return answer; } \ No newline at end of file diff --git "a/level-1/\354\275\234\353\235\274\354\270\240-\354\266\224\354\270\241.js" "b/level-1/\354\275\234\353\235\274\354\270\240-\354\266\224\354\270\241.js" index 9ff483c..ed3663c 100644 --- "a/level-1/\354\275\234\353\235\274\354\270\240-\354\266\224\354\270\241.js" +++ "b/level-1/\354\275\234\353\235\274\354\270\240-\354\266\224\354\270\241.js" @@ -31,4 +31,17 @@ function solution(num) { } // 작업을 반복한 횟수 반환 return cnt; +} + +//정답 3 - jaewon1676 +function solution(num) { + var answer = 0; + // num이 1이 아니고, answer이 500이 아니면 진행. + // 두 가지 조건중 하나라도 맞지 않으면 while문 종료. + while(num != 1 && answer != 500){ + //짝수면, 2로 나눠주고 홀수면 3을 곱하고 1을 더해준다. + (num % 2 == 0 ? num = num / 2 : num = num * 3 + 1) + answer++; + } + return num == 1 ? answer : -1 } \ No newline at end of file diff --git "a/level-1/\355\236\210\354\203\244\353\223\234-\354\210\230.js" "b/level-1/\355\236\210\354\203\244\353\223\234-\354\210\230.js" index acaab96..fc822e4 100644 --- "a/level-1/\355\236\210\354\203\244\353\223\234-\354\210\230.js" +++ "b/level-1/\355\236\210\354\203\244\353\223\234-\354\210\230.js" @@ -22,4 +22,16 @@ function solution(x) { } // x가 각 자릿수의 합으로 나누어떨어지는지 여부 반환 return x % sum_of_digits == 0; -} \ No newline at end of file +} + +//정답 3 - jaewon1676 +function solution(x) { + let sum = 0; + let arr = String(x).split(''); // 숫자를 하나씩 분리한다. + + for(var i=0; i a + b) !== 0) return tick; -} \ No newline at end of file +} + +//정답 3 - jaewon1676 +function solution(bridge_length, weight, truck_weights) { + var answer = 0; // 총 걸리는 시간 + let bridge = []; // 다리를 건너는 트럭 + let bridge_weight = 0; // 다리를 건너는 트럭의 총 무게 + + while (truck_weights.length > 0) { // 대기 트럭이 없을때까지 반복한다. + answer++; // 1초 추가 + if (bridge.length == bridge_length) { // 다리가 가득 차있으면 제일 먼저 들어간 트럭을 뺴준다. + bridge_weight -= bridge.shift(); + } + if (bridge_weight + truck_weights[0] > weight) { + bridge.push(0); + continue; + } + let truck_weight = truck_weights.shift(); + bridge.push(truck_weight); + bridge_weight += truck_weight; + } + + answer += bridge_length; + + return answer; + } \ No newline at end of file diff --git "a/level-2/\354\234\204\354\236\245.js" "b/level-2/\354\234\204\354\236\245.js" index e6d7373..01ff8ff 100644 --- "a/level-2/\354\234\204\354\236\245.js" +++ "b/level-2/\354\234\204\354\236\245.js" @@ -44,3 +44,26 @@ function solution(clothes) { return answer - 1; } + +//정답 4 - jaewon1676 +function solution(clothes) { + var answer = 1; + var obj={}; + for(var i=0;i2){ // n이 3 이상이면 필요한 만큼의 수 까지만 수를 만들어준다. + for (let i=3; i<=n; i++){ + dp.push((dp[i-1] + dp[i-2]) % 1000000007); + } + } + return dp[n] +} +/* +n이 1일땐 1, 2일땐 2, 3일땐 3, 4일땐 5 . . 의 식이 보인다. +n = (n - 1) + (n - 2)의 식으로 구할 수 있고, +제한 사항을 주의해서 풀어보자. */ \ No newline at end of file diff --git "a/level-3/\354\235\264\354\244\221\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220.js" "b/level-3/\354\235\264\354\244\221\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220.js" new file mode 100644 index 0000000..2535ad1 --- /dev/null +++ "b/level-3/\354\235\264\354\244\221\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220.js" @@ -0,0 +1,34 @@ +//https://github.com/codeisneverodd/programmers-coding-test +//완벽한 정답이 아닙니다. +//정답 1 - jaewon1676 +function solution(operations) { + var answer = []; + for (let i = 0; i < operations.length; i++) { + + // 숫자 삽입 + if (operations[i][0] == 'I') { + let m = operations[i].substring(2, operations[i].length) + answer.push(m) + } + // if 최댓값 삭제 + else if (operations[i][0] == 'D' && operations[i][2] == '1' && operations.length > 0) { + answer.pop() + } + // if 최솟값 삭제 + else if (operations[i][0] == 'D' && operations[i][2] == '-' && operations[i][3] == '1' && operations.length > 0){ + + answer.shift() + } + + answer.sort((a, b) => {return a - b}); + } + if (answer.length == 0) return [0, 0] + else { + return [parseInt(answer.pop()), parseInt(answer.shift())]; + } +} +/* 풀이 과정 +1. 연산 처리를 구별하기 위해 배열의 0번째 자리, 2번째 자리에 있는 등을 비교하여 조건에 따른 명령을 실행한다. +2. answer 배열을 정렬 해준다 +3. 큐가 비어있으면 ( length == 0 ) 0을 반환. , 그렇지 않으면 [최댓값, 최솟값]을 반환한다. +*/ \ No newline at end of file