⌨️ 프로그래머스/코딩테스트 입문

[프로그래머스] 배열 뒤집기 🔙

하나둘세현 2024. 2. 18. 01:52
728x90

문제

정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.

해결 과정

두가지 방법으로 풀었다. 

첫번째는 for문을 이용해서

두번째는 reverse 함수를 이용해서 풀었다.

 

👆🏻 for문을 이용한 해결

우선 답을 작성할 배열을 하나 만든다.

for문을 이용하여 작성한다. 여기서 for문을 작성할 때 변형이 필요하다. 

변형이 필요하다는게 무슨말이냐? 배열을 뒤집기 위한 변형이다. 

 for(let i = num_list.length-1; i >= 0; i--)

 

변수 선언문(할당문)은 i = num_list.length -1을 했다.

 

왜 num_list.length -1을 했을까? 🤔

그 이유는 배열의 인덱스가 0부터 시작하기 때문이다.

배열의 인덱스는 0부터 시작한다. 

배열의 길이는 1부터 시작한다.

만일 배열의 길이가 5라면 인덱스는 0, 1, 2, 3, 4이다. 

따라서 인덱스는 배열의 길이에 -1을 해야 배열의 마지막 요소에 접근할 수 있다.

한마디로 역순으로 접근하려면 -1을 해야한다.

 

조건식에서는 배열의 인덱스가 0부터 시작하기 때문에 >=을 했다.

 

증감식에서는 i--을 해야 1씩 감소하기 때문에 i--로 작성했다.

 

그리고 push를 통해 빈배열에 넣어줘 풀었다.

 

✌🏻.reverse를 이용하여 풀기

.reverse를 이용하면 배열을 뒤집어 풀 수 있다.

 

정답

// ### for문을 이용한 풀이 ###
function solution(num_list) {
    let answer = [];
    for(let i = num_list.length-1; i >= 0; i--) {
        answer.push(num_list[i]);
    }
    return answer;
}

// ### .reverse를 이용한 풀이 ###
function solution(num_list) {
    return num_list.reverse();
}

 

6m

728x90