-
Day 7, 8, 9, 10 모아서 정리! [10일 연속 성공]Code Challenge/codewars 2023. 3. 12. 15:54
간신히 문제만 10일 풀었는데 어제 못해서 깨졌다.
10일 연속 성공 !
다시 오늘부터 시작하기 전에 푼 문제 정리
워낙 바빴어서 정말 쉬운 문제들만 모아서 풀었던 터라 나누기 뭐해서 4일 치는 한 번에 정리 하기로
Square(n) Sum [8kyu]
주어진 숫자 배열에 있는 모든 숫자를 제곱한 뒤, 더해서 값을 반환하는 함수
이전 문제에서 reduce를 배웠던 터라 쉽게 해결
function squareSum(numbers){ const initial = 0; return numbers.reduce((acc, cur) => acc + cur * cur, initial) }
Two Sum [6kyu]
주어진 배열에서 2개의 숫자를 더해서 target이 나오면 더한 두 개의 숫자의 인덱스를 배열로 반환하는 함수
어떤 경우든 하나만 발견하면 반환하는 것이므로, 이 중 for문 작성을 먼저 하였고, 내부 for문은 slice라는 함수 대체해서 작성을 해봣다.
속도는 전자가 더 좋긴 했지만 제출은 후자로 했다. 좀 더 줄일 수 있을 것 같았는데 이 날 일정 상 이게 한계
function twoSum(numbers, target) { /* for (let index = 0; index < numbers.length; index++) { for (let idx2 = index+1; idx2 < numbers.length; idx2++) { if(numbers[index] + numbers[idx2] == target) { return [index, idx2]; } } } */ for (let index = 0; index < numbers.length; index++) { let t = numbers.slice(index+1).findIndex(n=> (numbers[index] + n === target)); if(t != -1) { return [index, index + t + 1]; } } }
Count by X [8kyu]
x가 주어지면 n번 배수를 만들어서 배열로 반환
2, 5가 주어지면 2, 4, 6, 8, 10을 반환
너무 바빠서 fundamental로 낮춰서 풀었던 것 같다 [..] 더 잘 짤 수도 있었겠지만 쉽게 쉽게..
function countBy(x, n) { let z = []; for(let i =1; i <= n; i++) { z.push(x * i); } return z; }
Sum of two lowest positive integers [7kyu]
배열에서 가장 작은 두 개의 수를 고른 뒤 더해서 반환하는 함수
정수가 아닌 것과 0보다 작은 걸 걸러낸 뒤, Math.min을 사용해서 풀었는데 Math.min은 배열을 받지 않는다는 사실을 배움!
function sumTwoSmallestNumbers(numbers) { numbers = numbers.filter(a => Number.isInteger(a) && a > 0); let min = Math.min(...numbers); let min2 = Math.min(...numbers.filter(n => n!= min)); return min + min2; }
'Code Challenge > codewars' 카테고리의 다른 글
[2] Day 1. Primes in numbers [5kyu] (2) 2023.03.12 Day 6. Break camelCase [6kyu] (0) 2023.03.06 Day 4. String ends with? [7kyu] (0) 2023.03.04 Day 3. Who likes it? [6kyu] (0) 2023.03.04 Day 2. hello world [8kyu] (0) 2023.03.02