728x90
문제 풀이 힌트
- 결과를 저장할 배열 생성:
- result 배열을 입력 배열 numbers와 동일한 크기로 초기화합니다.
- 방향이 "right"인 경우:
- 입력 배열의 마지막 원소를 result 배열의 첫 번째 위치에 저장합니다.
- 나머지 원소들을 오른쪽으로 한 칸씩 이동합니다.
- 예를 들어, numbers[0]는 result[1]에 저장됩니다.
- 방향이 "left"인 경우:
- 입력 배열의 첫 번째 원소를 result 배열의 마지막 위치에 저장합니다.
- 나머지 원소들을 왼쪽으로 한 칸씩 이동합니다.
- 예를 들어, numbers[1]는 result[0]에 저장됩니다.
- 다른 방법으로 "deque"를 사용
더보기
배열을 이용한 풀이
class Solution {
public int[] solution(int[] numbers, String direction) {
// 결과를 저장할 배열 생성, 크기는 입력 배열과 동일
int[] result = new int[numbers.length];
// 방향이 "right"인 경우
if (direction.equals("right")) {
// 마지막 원소를 첫 번째 위치로 이동
result[0] = numbers[numbers.length - 1];
// 나머지 원소들을 오른쪽으로 한 칸씩 이동
for (int i = 1; i < numbers.length; i++) {
result[i] = numbers[i - 1];
}
} else {
// 방향이 "left"인 경우
// 첫 번째 원소를 마지막 위치로 이동
result[numbers.length - 1] = numbers[0];
// 나머지 원소들을 왼쪽으로 한 칸씩 이동
for (int i = 0; i < numbers.length - 1; i++) {
result[i] = numbers[i + 1];
}
}
// 결과 배열 반환
return result;
}
}
deque를 이용한 풀이
class Solution {
public int[] solution(int[] numbers, String direction) {
// 결과를 저장할 배열 생성, 크기는 입력 배열과 동일
int[] result = new int[numbers.length];
// 방향이 "right"인 경우
if (direction.equals("right")) {
// 마지막 원소를 첫 번째 위치로 이동
result[0] = numbers[numbers.length - 1];
// 나머지 원소들을 오른쪽으로 한 칸씩 이동
for (int i = 1; i < numbers.length; i++) {
result[i] = numbers[i - 1];
}
} else {
// 방향이 "left"인 경우
// 첫 번째 원소를 마지막 위치로 이동
result[numbers.length - 1] = numbers[0];
// 나머지 원소들을 왼쪽으로 한 칸씩 이동
for (int i = 0; i < numbers.length - 1; i++) {
result[i] = numbers[i + 1];
}
}
// 결과 배열 반환
return result;
}
}
728x90
'프로그래머스(Java) > Level 0' 카테고리의 다른 글
[프로그래머스] 수열과 구간 쿼리 4 (0) | 2024.07.17 |
---|---|
[프로그래머스] 문자열 뒤집기 (0) | 2024.07.16 |
[프로그래머스] 369게임 (0) | 2024.07.15 |
[프로그래머스] 특별한 이차원 배열2 (0) | 2024.07.12 |
[프로그래머스] 안전지대 (0) | 2024.07.11 |