[프로그래머스] 배열 만들기 1

Jun_Gyu·2023년 8월 2일
0

프로그래머스

목록 보기
1/14
post-thumbnail


첫 풀이는 아래와 같이 진행했다.

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를 할 수 있겠다.

profile
시작은 미약하지만, 그 끝은 창대하리라

0개의 댓글