코딩 테스트 in JS
JS 프로그래머스 코테 1단계 | 짝수와 홀수, x만큼 간격이 있는 n개의 숫자, 평균 구하기
바닷가쟤
2023. 8. 7. 14:51
2023.08.07(월)
앞으로 1단계 정답률 높은 문제부터 풀어보려고 한다.
풀어보니까 생각보다 너무 빨리 풀려서 ... 0단계 정답률 낮은 문제와 병행하며 풀어야겠다고 생각했다.
Lv. 1 짝수와 홀수
당황했다.. 10초만에 풀었다..

문제는 이러하다.. 0단계 아닌교
function solution(num) {
if(num % 2 === 0) {
return "Even"
} else {
return "Odd"
}
}
빠르게 적어버렸는데 1트 성공
보니까 삼항 연산자 + 0은 false인 성질로 짧게 푸신 분도 있었다.
Lv. 1 x만큼 간격이 있는 n개의 숫자

이..것도 빨리 풀었다. 사실 새롭게 풀어보고 싶어서 while문으로 도전해봤는데 시간 초과로 실패 .. 아마 잘못 적은 것 같다.
function solution(x, n) {
let answer = []
let num = 0
for(let i = 1; i <= n; i++){
num = x * i
answer.push(num)
}
return answer
}
이 코드로 통과를 했고, 더 간결하게 만들 수 있다.
function solution(x, n) {
let answer = []
for(let i = 1; i <= n; i++){
answer.push(x * i)
}
return answer
}
이렇게 간결하게 고쳤다. (이게 근본 코드라고...)
for문만 계속 쓰는데, Array, fill, map도 쓰고 싶다...
function solution(x, n) {
return Array(n).fill(x).map((v, i) => (i + 1) * v)
}
- Array(n): 길이가 **n**인 배열을 생성한다. 배열의 모든 요소는 초기값으로 **undefined**로 설정된다.
- .fill(x): **Array(n)**으로 생성한 배열의 모든 요소를 **x**로 채운다. 이렇게 하면 배열의 모든 요소가 **x**로 설정된다.
- .map((v, i) => (i + 1) * v): .map() 메소드는 배열의 각 요소를 순회하면서 주어진 함수를 적용하여 새로운 배열을 생성한다. **v**는 현재 요소의 값이고 **i**는 현재 요소의 인덱스다.예를 들어, **x**가 3이고 **n**이 5인 경우, **Array(5).fill(3)**은 **[3, 3, 3, 3, 3]**을 생성하고, **.map((v, i) => (i + 1) * v)**를 적용하면 **[3 * 1, 3 * 2, 3 * 3, 3 * 4, 3 * 5]**인 **[3, 6, 9, 12, 15]**를 반환한다.
- map 메소드는 배열의 길이 **n**에 해당하는 횟수만큼 반복하며, 각 반복에서 **(i + 1) * v**를 반환한다. 여기서 **i + 1**은 1부터 시작하는 순차적인 값이며, **v**는 초기에 설정한 **x**의 값이다.
- 최종적으로 map 메소드에 의해 생성된 배열이 함수의 반환값으로 제공된다.
느낀점
- 챗 gpt 개쩐다...
- 다른 어려운 메소드도 많이 사용해 봐야겠다.
Lv. 1 평균 구하기

map도 써보려 하고 최대한 for문을 쓰지 않으려고 했다..!!
function solution(arr) {
const sum = arr.reduce((acc, cur) => {
return acc + cur
}, 0)
// return sum / arr.length
}
reduce를 써보려 했으나... 왜 타입 에러가 나는 것인지...??
function solution(arr) {
let number = arr.reduce((acc, cur) => acc + cur, 0)
return number / arr.length
}
이렇게 정답을 받아낸 코드를 작성했다. reduce는 처음 써보는데 확실하게 뭔지 알게 되었다.
function solution(arr) {
return arr.reduce((a, b) => a + b, 0) / arr.length
}
같은 코드를 더 간결하게 만들었다.
왜 에러가 났냐면 reduce에서 return 하는 건 number 변수로 할당이 되는거지 function solution에 할당되는게 아니기 때문이다.
에러가 나는 것은 solution에서 return 하는 값이 없어서 TypeError가 났다.
앞으로 요약하고 제출하는 연습을 해보자 !!!!
728x90