코딩 테스트/Programmers - 1

[풀이] function solution1(arr){ const result = []; for(let i = 0; i x !== arr[idx+1]); } solution 01 1. for문을 통해서 arr의 인덱스값을 다음 인덱스값과 비교했을 때 다르면 그 값을 다시 result 변수 안에 넣어준다. solution 02 1. filter 함수를 이용해서 위와 같이 풀어주면 끝! [코드 리뷰] function solution(arr) { const result = []; for (const el of arr) { const lastElement = result[result.length - 1]; if (lastElement !== el) result.push(el); } return result; } ..
[풀이] function solution(n, m) { const gcd = (a, b) => (a % b === 0 ? b : gcd(b, a % b)); const lcm = (a, b) => (a * b) / gcd(a, b); return [gcd(n, m), lcm(n, m)]; } 1. 이 문제는 유클리드 호제법으로 풀어야한다. (나는 중첩 함수를 이용해 풀었다.) [유클리드 호제법] 유클리드 호제법은 주어진 두 수 사이에 존재하는 최대공약수(GCD)를 구하는 알고리즘이다. - 임의의 두 자연수 a, b가 있을 때 (둘 중 큰 값이 a라고 가정) - a 를 b 로 나눈 나머지를 r 이라고 하면 (a % b = r) - r이 0일 때, b가 최대공약수(GCD)이다. - 만약 n이 0이 아니라면 ..
[풀이] function solution(left, right) { let result = 0; for (let i = left; i
[풀이] function solution(arr1, arr2) { let result = [[]]; for (let i = 0; i < arr1.length; i++) { result[i] = []; for (let j = 0; j < arr1[i].length; j++) { result[i].push(arr1[i][j] + arr2[i][j]); } } return result; } 1. 이중배열 변수 result 를 선언한다. 2. 이중 for문을 통해서 값을 받아왔다. - 안쪽 for문 result[i]에 행렬의 덧셈을 넣어주면 된다. [코드 리뷰] function solution(arr1, arr2) { const result = []; for (let i = 0; i < arr1.length; ..
[풀이] function solution(a, b) { let result = 0; for (let i = 0; i (acc += cur * b[idx]..
[풀이] function solution(n) { let result = 0; for (let i = 1; i
[처음 풀이] function solution(n) { const nArr = n.toString().split(""); let sum = ""; let result = 0; for (let i = 0; i < n.length; i++) { sum += nArr[i]; result = Number(sum); } return result; } 계속 답이 0이 나온다. 그래서 풀이를 바꿈 function solution(n) { let result = 0; n = n.toString(); for (let i = 0; i < n.length; i++) { result += parseInt(n[i]); } return result; } 굳이 배열로 받을 필요 없이 문자열에서 바로 str[i]를 통해 뽑는게 더 ..
[풀이] function solution(a, b) { const days = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]; const date = new Date(); date.setFullYear(2016, a - 1, b); const result = days[date.getDay()]; return result; } 1. 먼저 days 변수를 만들고 요일을 배열 안에 넣어준다. 2. new Date()를 이용해 2016년 a월 b일을 설정해준다. 3. 이때 자바스크립트에서 월은 (현재 월 -1)을 해줘야한다. (예시 : 2월은 자바스크립트에서 1임) 4. 마지막으로 배열에서 그 날의 요일을 받아온다. [코드 리뷰] function solution(a, ..
[풀이] function solution(num) { if (num % 2 === 0) return "Even"; else { return "Odd"; } } 2로 나누었을 때 나머지가 0 이면 짝수이고 그렇지 않으면 홀수이다. [코드리뷰] function solution(num) { if (num % 2 === 0) return "Even"; return "Odd"; } 밑에 else 문은 불필요한 블록이다. 위에 if 문에서 return 이 있기 때문에 아래 else 블록은 없어도 된다. 불필요한 블록을 추가하는 건 가독성면에서 좋지않다.
[풀이] function solution(s) { return (s.length === 4 || s.length === 6) && s == parseInt(s); } 문제 그대로 풀어주면 된다. 근데 이때 s === parseInt(s); 를 했을 때는 테스트를 통과하지 못한다. === 를 쓰는 것이 권장사항인데 아마 === 가 == 보다 더 엄격하기 때문에 통과를 못하는 것 같기도 하다. [코드 리뷰] const a = 1; const b = '1'; console.log(a == b); // true console.log(a === b); // false 위에서 보듯이 == (동등 연산자)보다 === (일치 연산자)가 더 엄격하게 "타입" 체크를 해준다. 코딩테스트라는 특수한 경우긴 하지만 일반적으로..
hayeonn
'코딩 테스트/Programmers - 1' 카테고리의 글 목록 (2 Page)