문제
https://www.acmicpc.net/problem/2164
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
1. 큐의 개념을 이해하면 어렵지 않게 풀 수 있다. 내가 작성한 코드에선 change변수를 통해 반복마다 분기를 만들었는데 이 방법보단 어차피 한번씩 번갈아가며 버리거나 추가하기 때문에 그냥 두줄로 작성하는게 나을듯 하다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
public class Main2164 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
Queue<Integer> qu = new LinkedList<Integer>();
boolean change = false;
for (int i=1; i<=N; i++) {
qu.add(i);
}
while (qu.size() != 1) {
int temp = qu.poll();
if (change) {
qu.add(temp);
}
change = !change;
}
System.out.println(qu.poll());
}
}
'백준' 카테고리의 다른 글
백준 1427번 자바 (0) | 2023.01.09 |
---|---|
백준 1377번 자바 (0) | 2023.01.07 |
백준 17298번 자바 ☆ (0) | 2023.01.04 |
백준 1874번 자바 (0) | 2023.01.03 |
백준 11003번 자바 ☆ (0) | 2023.01.02 |