CodingTest/Programmers

배열 뒤집기 [프로그래머스 코딩테스트 입문]

Hojung7 2025. 1. 13. 19:23

문제 설명

 

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



 제한 사항

  • 1 ≤ num_list의 길이 ≤ 1,000
  • 0 ≤ num_list의 원소 ≤ 1,000


 입출력 예

num_list result
[1, 2, 3, 4, 5] [5, 4, 3, 2, 1]
[1, 1, 1, 1, 1, 2] [2, 1, 1, 1, 1, 1]
[1, 0, 1, 1, 1, 3, 5] [5, 3, 1, 1, 1, 0, 1]

 

 

 

 입출력 예 설명

 

입출력 예 #1
num_list가 [1, 2, 3, 4, 5]이므로 순서를 거꾸로 뒤집은 배열 [5, 4, 3, 2, 1]을 return합니다.


입출력 예 #2
num_list가 [1, 1, 1, 1, 1, 2]이므로 순서를 거꾸로 뒤집은 배열 [2, 1, 1, 1, 1, 1]을 return합니다.


입출력 예 #3
num_list가 [1, 0, 1, 1, 1, 3, 5]이므로 순서를 거꾸로 뒤집은 배열 [5, 3, 1, 1, 1, 0, 1]을 return합니다.

 

 

 

 

 풀이

 

1. reverse 배열을 num_list와 같은 길이로 생성해줍니다.

 

2. 반복문을 사용하여 인덱스를 반대로 계산해줍니다.

 

3. reverse 결과를 반환해줍니다.

 

class Solution {
    public int[] solution(int[] num_list) {
        int[] reverse = new int[num_list.length]; // 뒤집힌 결과를 저장할 배열

        // 배열의 원소를 거꾸로 복사
        for (int i = 0; i < num_list.length; i++) {
            reverse[i] = num_list[num_list.length - 1 - i];
        }

        return reverse; // 결과 반환
    }
}

 

 

num_list[num_list.length - 1 - i] 상세 설명

 

num_list = {1, 2, 3, 4, 5}        |    num_list.length = 5

 

i reverse[i] 계산 결과
0 num_list[5 - 1 - 0] = num_list[4] 5
1 num_list[5 - 1 - 1] = num_list[3] 4
2 num_list[5 - 1 - 2] = num_list[2] 3
3 num_list[5 - 1 - 3] = num_list[1] 2
4 num_list[5 - 1 - 4] = num_list[0] 1