[Programmers] 코딩테스트

[Day 2] 배열 두배 만들기

문무스 2022. 11. 18. 02:40

📒문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.


🚫제한사항

 • -10,000 ≤ numbers의 원소 ≤ 10,000

 • 1 ≤ numbers의 길이 ≤ 1,000


📄입출력 예

numbers result
[1, 2, 3, 4, 5] [2, 4, 6, 8, 10]
[1, 2, 100, -99, 1, 2, 3] [2, 4, 200, -198, 2, 4, 6]

📑입출력 예 설명

입출력 예 #1

  • [1, 2, 3, 4, 5]의 각 원소에 두배를 한 배열 [2, 4, 6, 8, 10]을 return합니다.

입출력 예 #2

  • [1, 2, 100, -99, 1, 2, 3]의 각 원소에 두배를 한 배열 [2, 4, 200, -198, 2, 4, 6]을 return합니다.

✍️ 풀이

🤔생각해 본 내용 

1)  

1. numbers 원소 하나씩 꺼내기
2. 꺼낸 원소 두배로 만들기
3. 꺼낸 원소 새로운 배열 answer에 넣기

function solution(numbers) {
    let answer = []; // 새로운 배열 answer 초기화
    let doubleNum = 0; // 두배된 원소 담을 doubleNum 초기화
    
    // 1. numbers 원소 하나씩 꺼내기
    // 2. 꺼낸 원소 두배로 만들기
    // 3. 꺼낸 원소 새로운 배열 answer에 넣기
    
    for(let i = 0; i < numbers.length; i++){
        doubleNum = numbers[i] + numbers[i];
        answer.push(doubleNum);
    }
    
    return answer; // answer 출력
}

 

2) answer의 원소에 바로 numbers의 원소에 두배한 값을 넣기

function solution(numbers) {
    let answer = []; // 새로운 배열 answer 초기화
    
    // answer의 원소에 바로 numbers의 원소에 두배한 값을 넣기
    
    for(let i = 0; i < numbers.length; i++){
        answer[i] = numbers[i] + numbers[i];
    }
    
    return answer; // answer 출력
}

 

3) map을 통해 순회하며, numbers 배열로부터 각 원소에 두배하여 answer에 할당

function solution(numbers) {
    let answer = []; // 새로운 배열 answer 초기화
    
    // map을 통해 순회하며, numbers 배열로부터 각 원소에 두배하여 answer에 할당
    answer = numbers.map((num) => num * 2);
    
    return answer; // answer 출력
}

출처:

https://school.programmers.co.kr/