프로그래머스/Lv. 0(코딩테스트 입문)

[프로그래머스 코딩테스트] 배열 뒤집기(Java)

Sigfriede 2023. 3. 24. 05:47

  문제 설명

  정수가 들어 있는 배열 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]
class Solution {
    public int[] solution(int[] num_list) {
        int[] answer = new int[num_list.length];
        for (int i = num_list.length-1, j = 0; 0 <= i; i--, j++) {
            answer[j] = num_list[i];
        }        
        return answer;
    }
}

  오늘은 다른 풀이와 달리 배열의 끝부터 시작해서 i값이 점차 감소하는 for문입니다. 반면에 j값은 점차 증가하는데, num_list의 i번째 원소를 answer의 j번째 인덱스에 할당합니다. length는 배열의 크기(원소의 개수)를 나타내지만, 우리가 필요한 것은 인덱스의 값입니다. 인덱스는 0부터 시작하기 때문에 배열의 크기보다 1이 작으므로 1을 빼주었습니다.

  이러한 단계들을 거쳐 answer에는 num_list의 역순으로 배열이 차곡차곡 쌓이게 됩니다.

 

  5일차까지 클리어! 벌써 스무 문제나 정리에 성공했습니다. 사실 순서대로 정리할 생각은 없었는데 어쩌다보니 이렇게 됐네요. 오히려 좋아….