프로그래머스 Lv.0 배열 만들기1

J·2023년 6월 6일
0

programmers

목록 보기
9/33

문제 링크

배열 만들기1


문제 설명

정수 n과 k가 주어졌을 때, 1 이상 n이하의 정수 중에서 k의 배수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.


제한 사항

  • 1 ≤ n ≤ 1,000,000
  • 1 ≤ k ≤ min(1,000, n)

입출력 예

nkresult
103[3, 6, 9]
155[5, 10, 15]

입출력 예 설명

입출력 예 #1

  • 1 이상 10 이하의 3의 배수는 3, 6, 9 이므로 [3, 6, 9]를 return 합니다.
    입출력 예 #2

  • 1 이상 15 이하의 5의 배수는 5, 10, 15 이므로 [5, 10, 15]를 return 합니다.


풀이

  1. k부터 n까지 반복문을 돌 것임.
  2. 반복마다 i % k === 0 조건을 사용해 i가 k로 나누어 떨어지는지 확인.
  3. 나누어 떨어지면 (i가 k의 배수이면) 배열에 i 추가.
  4. 숫자 k부터 반복문이 시작하니 sort 메서드를 사용할 필요 없음.

코드

function solution(n, k) {
    const arr = [];
    
    for (let i = k; i <= n; i++) {
        if (i % k === 0) {
            arr.push(i);
        }
    }
    
    return arr;
}

다른 사람의 코드

function solution(n, k) {
    var answer = [];
    for(let i = k ; i <= n; i+=k){
        answer.push(i)
    }
    return answer;
}
const solution=(n,k)=>Array(~~(n/k)).fill(k).map((v,i)=>v*(i+1))

생각

  • 두 번째 코드

    • i += k로 루프의 각 반복에서 i의 값을 k만큼 증가시킴 -> i가 k로 나누어 떨어지는 지 확인 후 1씩 증가시키는 대신 k만큼 증가시켜 k의 다음 배수를 생성함. 추가 조건문이 필요하지 않아 더 간결함.
  • 세 번째 코드

    • tilde(~) 연산자 공부하기.
profile
벨로그로 이사 중

0개의 댓글

관련 채용 정보