문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120844?language=java
배열은 인덱스로 데이터에 바로 접근할 수 있으므로!
오른쪽으로 회전 : 맨 뒤의 숫자가 맨 앞으로 오고 나머지는 그대로
왼쪽회전 : 맨 앞의 숫자가 맨 뒤로 가고 나머지는 그대로
import java.util.ArrayList;
class Solution {
public int[] solution(int[] numbers, String direction) {
int[] answer;
ArrayList<Integer> result = new ArrayList<>();
if(direction.equals("right")){ // 오른쪽 회전
result.add(numbers[numbers.length-1]); // 맨 뒤의 숫자를 맨 앞으로
for(int i = 0; i<numbers.length-1; i++){ // 0번 인덱스 데이터부터 맨뒤 바로 앞까지를 그대로 결과 배열에 붙여준다.
result.add(numbers[i]);
}
} else if(direction.equals("left")){ // 왼쪽 회전
for(int i = 1; i<numbers.length; i++){ //1번 인덱스 데이터부터 맨 뒤까지 결과배열에 붙여준디ㅏ.
result.add(numbers[i]);
}
result.add(numbers[0]); // 맨 앞의 데이터를 맨 뒤에 붙여준다.
}
answer = result.stream().mapToInt(i->i).toArray(); // ArrayList를 int[]로 바꿔 준다.
return answer;
}
}