[백준] PS/Java [실랜디]

[백준 1835] 카드 - JAVA

SH3542 2025. 3. 5. 21:35

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