문제 설명
정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 3 ≤ numbers의 길이 ≤ 20
- direction은 "left" 와 "right" 둘 중 하나입니다.
class Solution {
public int[] solution(int[] numbers, String direction) {
int n = numbers.length; // 배열의 길이
int[] result = new int[n]; // 회전 결과를 저장할 새 배열
if (direction.equals("right")) {
// 오른쪽 회전: 마지막 요소를 첫 번째로 이동
result[0] = numbers[n - 1];
for (int i = 1; i < n; i++) {
result[i] = numbers[i - 1];
}
} else {
// 왼쪽 회전: 첫 번째 요소를 마지막으로 이동
result[n - 1] = numbers[0];
for (int i = 0; i < n - 1; i++) {
result[i] = numbers[i + 1];
}
}
return result;
}
}
핵심 아이디어
- 배열 회전이란 특정 방향으로 배열의 요소를 재배치하는 작업이다.
- "right": 마지막 요소를 배열의 맨 앞으로 이동, 나머지 요소는 한 칸 뒤로 이동.
- "left": 첫 번째 요소를 배열의 맨 뒤로 이동, 나머지 요소는 한 칸 앞으로 이동.
구현 방법
- 오른쪽 회전:
- 배열의 마지막 요소를 저장.
- 각 요소를 한 칸씩 뒤로 밀고, 마지막 요소를 배열의 첫 번째에 넣는다.
- 예: [1,2,3][1, 2, 3] → [3,1,2][3, 1, 2].
- 왼쪽 회전:
- 배열의 첫 번째 요소를 저장.
- 각 요소를 한 칸씩 앞으로 이동하고, 첫 번째 요소를 배열의 마지막에 넣는다.
- 예: [4,455,6,4,−1,45,6][4, 455, 6, 4, -1, 45, 6] → [455,6,4,−1,45,6,4][455, 6, 4, -1, 45, 6, 4].
'JAVA > 프로그래머스 코딩테스트 입문' 카테고리의 다른 글
[프로그래머스 LV.0] 숫자 찾기 (0) | 2024.11.27 |
---|---|
[프로그래머스 LV.0] 369게임 (0) | 2024.11.27 |
[프로그래머스 LV.0] 최댓값 만들기(1) (0) | 2024.11.27 |
[프로그래머스 LV.0] 삼각형의 완성조건(1) (0) | 2024.11.27 |
[프로그래머스 LV.0] 배열의 유사도 (0) | 2024.11.27 |