-
[백준 2164번] 카드2 (자바)Algorithm/큐(Queue) 2022. 6. 21. 11:49
백준알고리즘 2164번 : 카드2(Solved.ac 난이도 Silver4)
https://www.acmicpc.net/problem/2164
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
Queue에 오름차순으로 숫자를 넣은뒤에 규칙대로 빼고, 뺀 숫자를 뒤에 add하여
Queue의 size가 1이될 때 남은 값을 출력하면 된다.풀이 과정
1. Queue에 오름차순으로 숫자를 add한다.
2. while문으로 Queue의 size가 1이 넘는동안 규칙을 반복한다.
3. Queue size가 1이 될 때 해당 값을 poll하여 출력한다.▽ 정답 소스 보기
더보기import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; public class Main {// [Silver4] No2164 : 카드4 public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int x = Integer.parseInt(br.readLine()); Queue<Integer> q = new LinkedList<>(); for (int i = 1; i <= x; i++) { q.add(i); } while (q.size() > 1) { q.poll(); q.add(q.poll()); } System.out.println(q.poll()); } }