문제 설명
정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 3 ≤ numbers의 길이 ≤ 20
- direction은 "left" 와 "right" 둘 중 하나입니다.
입출력 예
numbers | direction | result |
[1, 2, 3] | "right" | [3, 1, 2] |
[4, 455, 6, 4, -1, 45, 6] | "left" | [455, 6, 4, -1, 45, 6, 4] |
입출력 예 #1 : numbers가 [1, 2, 3]이고 direction이 "right" 이므로 오른쪽으로 한 칸씩 회전시킨 [3, 1, 2]를 return합니다.
입출력 예 #2 : numbers가 [4, 455, 6, 4, -1, 45, 6]이고 direction이 "left" 이므로 왼쪽으로 한 칸씩 회전시킨 [455, 6, 4, -1, 45, 6, 4]를 return합니다.
나의 풀이
class Solution {
public int[] solution(int[] numbers, String direction) {
int temp;
if(direction.equals("right")){
temp = numbers[numbers.length-1];
for(int i = numbers.length-2; i >= 0; i--){
numbers[i+1] = numbers[i];
}
numbers[0] = temp;
return numbers;
}else{
temp = numbers[0];
for(int i=0; i<numbers.length-1; i++){
numbers[i] = numbers[i+1];
}
numbers[numbers.length-1] = temp;
return numbers;
}
}
}
다른 풀이1
class Solution {
public static int[] solution(int[] numbers, String direction) {
// left 일 경우
if (direction.equals("left")) {
// 마지막 값
int firstValue = numbers[0];
for (int i = 0; i < numbers.length - 1; i++) {
numbers[i] = numbers[i + 1];
}
numbers[numbers.length - 1] = firstValue;
}
// right 일 경우
else {
int lastValue = numbers[numbers.length - 1];
for (int i = numbers.length - 1; i > 0; i--) {
numbers[i] = numbers[i - 1];
}
numbers[0] = lastValue;
}
return numbers;
}
}
다른 풀이2
class Solution {
public int[] solution(int[] numbers, String direction) {
int[] answer = new int[numbers.length];
if (direction.equals("right")) {
answer[0] = numbers[numbers.length -1];
for (int i = 0; i < numbers.length - 1; i++) {
answer[i + 1] = numbers[i];
}
} else {
answer[answer.length - 1] = numbers[0];
for (int i = 1; i < numbers.length; i++) {
answer[i - 1] = numbers[i];
}
}
return answer;
}
}
'👨💻 Coding Test > Programers' 카테고리의 다른 글
[Programmers/Java/Lv.0] 44.합성수 찾기 (0) | 2024.12.03 |
---|---|
[Programmers/Java/Lv.0] 43.주사위의 개수 (0) | 2024.12.02 |
[Programmers/Java/Lv.1] 2.2016년 (2) | 2024.10.24 |
[Programmers/Java/Lv.0] 41.공 던지기 (0) | 2024.10.24 |
[Programmers/Java/Lv.0] 40.2차원으로 만들기 (0) | 2024.10.23 |