코딩 테스트

[풀이] function solution(n) { for (let i = 1; i
[풀이] function solution1(sizes) { const newArr = sizes.map(([w, h]) => (w > h ? [w, h] : [h, w])); const w = []; const h = []; for (let i = 0; i < sizes.length; i++) { w.push(newArr[i][0]); h.push(newArr[i][1]); } return Math.max(...w) * Math.max(...h); } 문제를 이해하고 더 큰 숫자를 배열에서 가장 앞쪽에 위치하게 하려고 했다. 처음엔 이중 for문을 통해서 풀어주려고 했는데 굳이 그러지 않아도 됐다. 가로 * 세로 이기 때문에 어처피 인덱스값은 2개만 있을 것이고 0,1 만 쓰므로 굳이 반복을 하지 않아도..
[풀이] function solution(s) { return s .toLowerCase() .split(" ") .map((str) => { return str .split("") .map((el, idx) => (idx % 2 === 0 ? el.toUpperCase() : el)) .join(""); }) .join(" "); } 1. s를 먼저 모두 소문자로 바꿔준다. → 단순히 예제만 보고 생각했을 때 모두 소문자라 생각을 못했는데.. 많은 가능성을 열어두고 생각해야 했다. 예제가 모두 소문자라 할지라도 여러가지 경우의 수가 있으며 인덱스 홀수 번째 문자가 대문자일 수도 있다. (이 생각을 못함) 나무를 보지말고 숲을 봐야한다. 코딩테스트를 풀 때는 히든케이스도 고려해야 한다. 2. 그리고 공백..
[풀이] 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]를 통해 뽑는게 더 ..
hayeonn
'코딩 테스트' 카테고리의 글 목록 (2 Page)