알고리즘/프로그래머스
(프로그래머스/자바) 힌트문제2 02. 배열 - 프로그래머스 : 배열 회전시키기
son_i
2023. 7. 25. 23:10
728x90
코딩테스트 연습 - 배열 회전시키기 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
보자마자 데크를 이용하면 되겠다는 생각이 들었다.
directions이 right면 q.offerFirst(q.pollLast()); left면 그 반대
여기서 q를 배열로 바꾸기 위해서 stream을 사용했다. 리스트를 배열로 바꿀 때랑 똑같다.
answer = q.stream().mapToInt(x-> x).toArray();
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.stream.IntStream;
public class Array_02 {
public static int[] solution(int[] numbers, String direction) {
int[] answer = {};
Deque <Integer> q = new ArrayDeque<Integer>();
IntStream.of(numbers).forEach(x->q.offerLast(x));
if (direction.equalsIgnoreCase("right")){
q.offerFirst(q.pollLast());
} else {
q.offerLast(q.pollFirst());
}
answer = q.stream().mapToInt(x->x).toArray();
return answer;
}
public static void main(String args[]){
int arr[] = {1,2,3};
System.out.println(solution(arr,"right"));
}
}
728x90