첫 풀이는 아래와 같이 진행했다.
function solution(n, k) {
var answer = [];
let a = 0 // 배열 answer의 0번째~n번째 인덱스 번호를 담당할 변수 선언
for (let i = 1; i <= n; i++) { // 오름차순으로 반복문 전개
if ((i % k) === 0) { // 입력받은 수 k의 배수일 시
answer[a] = i // 배열 answer에 하나씩 추가.
a++ // 인덱스 증가
}
}
return answer;
}
아직 배열에 관련된 메소드들을 자유자재로 다루지를 못해 Java를 학습할 당시의 느낌대로 조건문과 for 반복문을 활용하여 문제를 해결해보았다.
하지만 위와 같이 이미 만들어진 빈 배열에 요소를 추가하는 경우에는 .push()
메소드를 사용하면 좀 더 간단히 해결할 수 있다.
const solution = (n, k) => {
var answer = [];
for (let i = 1; i <= n; i++) if ((i % k) === 0) answer.push(i)
// .push() 메소드는 배열의 맨 마지막 인덱스에 요소를 하나 추가해주는 메소드임.
return answer;
}
요즘 대세인 화살표 함수로 변경해주고 .push()
메소드를 사용하여 좀 더 간단하게 나타냈다.
여기서 쪼-금 더 간략하게 나타낸다면
const solution = (n, k) => {
var answer = [];
for(let i = k ; i <= n; i+=k){
// 아예 반복문을 k씩 증가하게 해서 배수체크를 안해도 됨.
answer.push(i) // 그리고 입력된 k의 배수들은 배열 `answer`로 push.
}
return answer;
}
위와 같은 방법으로 k
를 아예 반복문의 증가치로 넣어준다면 if조건문
을 활용할 필요 없이 바로 배열로 push
를 할 수 있겠다.