본문 바로가기
알고리즘/프로그래머스

(프로그래머스/자바) 힌트문제2 02. 배열 - 프로그래머스 : 배열 회전시키기

by son_i 2023. 7. 25.
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"));
    }
}