728x90
[프로그래머스] x만큼 간격이 있는 n개의 숫자 | javascript level 1
문제 설명
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
제한 조건
- x는 -10000000 이상, 10000000 이하인 정수입니다.
- n은 1000 이하인 자연수입니다.
입출력 예
x | n | return |
2 | 5 | [2,4,6,8,10] |
4 | 3 | [4,8,12] |
-4 | 2 | [-4, -8] |
작성한 코드
function solution(x, n) {
let answer = [];
for(let i=0, init=x; i<n; i++) {
answer.push(init);
init += x;
}
return answer;
}
복잡하게 생각하고 푸는 것 같습니다.. 정답 직전까지 생각이 도달했다가 인내심 못가지고 더 꼬아서 생각하게 되는데 알고리즘 문제는 다다익선, 많이 풀수록 더 좋아지는거니까 좋아지겠죠 화이팅 🤯
저는 init라고 x의 초기값을 먼저 변수에 저장해두고 계속 x를 더해주면서 answer에 push해주는 방법으로 풀었습니다.
좋은 코드
function solution(x, n) {
return Array(n).fill(x).map((v, i) => (i + 1) * v)
}
function solution(x, n) {
var answer = [];
for (let i = 1; i <= n; i++) {
answer.push(x*i)
}
return answer;
}
첫번째 코드는 정말 간결해요!! 정답 도출 과정은 유사합니다.
두번째 코드 보고 나 정말 정답 직전까지 갔다가 꼬아서 푸는구나 했던.... 생각한거 그대로라서 저 답안 보고 좀 벙쪘는데 이정도면.... 문제 푸는걸 좀 정리하면서 해결해야 하겠습니다 😂
forEach, map, filter, reduce가 너어무 헷갈려서 주기적으로 복습하는데 진짜 이 함수들은 무궁무진하네요. 아직 헷갈리고 어렵다는 뜻입니다 ㅋㅋㅋㅋㅋㅋ ㅠㅠ
728x90
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] 정수 제곱근 판별 | javascript (0) | 2021.07.27 |
---|---|
[프로그래머스] 직사각형 별찍기 | javascript (0) | 2021.07.26 |
[프로그래머스] 정수 내림차순으로 배치하기 | javascript (0) | 2021.07.24 |
[프로그래머스] 핸드폰 번호 가리기 | javascript (0) | 2021.07.23 |
[프로그래머스] 평균 구하기 | javascript (0) | 2021.07.22 |