https://www.acmicpc.net/problem/1835
덱 문제
써있는대로 구현은 경우의 수가 1000!이므로 불가능하다.
힌트에 있는 과정을 역순으로 진행 및 반대로 해석한다.
책상 위로 <-> 덱 안에 넣음
앞을 뒤로 <-> 뒤를 앞으로
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int N = new Scanner(System.in).nextInt();
Deque<Integer> q = new ArrayDeque<>();
q.offerFirst(N);
int card = N - 1;
while (card > 0) {
q.offerFirst(card);
int suffle = card;
while (suffle > 0) {
q.offerFirst(q.pollLast());
suffle--;
}
card--;
}
StringBuilder sb = new StringBuilder();
while (!q.isEmpty()) {
sb.append(q.pollFirst()).append(" ");
}
System.out.println(sb);
}
}
'[백준] PS > Java [실랜디]' 카테고리의 다른 글
[백준 1895] 필터 - JAVA (0) | 2025.03.06 |
---|---|
[백준 1996] 지뢰 찾기 - JAVA (0) | 2025.03.06 |
[백준 1822] 차집합 - JAVA (0) | 2025.03.05 |
[백준 1780] 종이의 개수 - JAVA (0) | 2025.03.05 |
[백준 1713] 후보 추천 - JAVA (0) | 2025.03.05 |