🖇️ 문제 링크
💡 문제 분석
덱 자료구조를 이용해서 앞, 뒤를 연결시켜줍니다.
덱에서 원소를 poll()했을 때, 자동으로 오른쪽으로 한 칸은 이동하기 때문에, 오른쪽으로 이동할 때는 1칸 덜 이동시킵니다.
⌨️ 코드
import java.util.*;
public class Q2346 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Deque<Balloon> deq = new ArrayDeque<>();
for(int i = 0; i < n; i++)
deq.add(new Balloon(i + 1, sc.nextInt()));
StringBuilder sb = new StringBuilder();
while(deq.size() > 1) {
Balloon cur = deq.poll();
sb.append(cur.idx).append(" ");
int move = cur.num;
if(move < 0) {
while(move++ < 0)
deq.addFirst(deq.pollLast());
} else {
move--;
while(move-- > 0)
deq.addLast(deq.pollFirst());
}
}
System.out.println(sb.append((deq.poll()).idx));
}
static class Balloon {
int idx, num;
Balloon(int idx, int num) {
this.idx = idx;
this.num = num;
}
}
}
⏱️ 결과
Uploaded by Notion2Tistory v1.1.0