728x90
<문제>
https://www.acmicpc.net/problem/2164
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
<풀이>
1. 어떤 접근으로 문제를 접근하려고 했는지
문제에서 요구하는 건 하나를 빼고 그다음 하나는 담고 이러한 행위를 반복한다. 하나를 빼서 맨뒤로 보낸다 -> 전형적인 큐를 사용하는 문제이기 때문에 큐 자료구조를 이용해서 문제를 풀어야 하는지 접근하려고 했다.
2. 문제를 해결하기 위한 기능 목록
큐를 이용해서 값을 담아두고 한 번은 값을 버리고 한 번은 값을 맨뒤로 옮기는 행위
<코드>
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args)throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Queue<Integer> queue = new LinkedList<>();
for(int i = 1; i <= n; i++) { // 큐에 값을 순서대로 넣는다.
queue.add(i);
}
while(queue.size() != 1) { // 큐가 1개가 남을 때까지 반복
queue.poll(); // 하나는 그냥 버림
queue.add(queue.poll()); // 하나를 빼서 맨 뒤로 보냄
}
System.out.println(queue.poll());
}
}
728x90
'Algorithm > 백준 자바' 카테고리의 다른 글
백준 15649 자바 ( N 과 M (1)) (0) | 2024.04.22 |
---|---|
백준 1918 자바 (후위 표기식) (0) | 2024.04.22 |
백준 18258 자바 (큐 2) (1) | 2024.04.20 |
백준 10773 자바 (1) | 2024.04.20 |
백준 28278 자바 (스택2) (0) | 2024.04.20 |