1. 문제 링크
2. 문제 및 입출력예제
3. 문제 풀이
큐를 이용해서 전부 큐에 넣은 후
하나는 꺼내서 버리고 하나는 다시 넣는 방식으로 진행했다.
하나만 남았을 경우 종료해야 하는데
if문 위치를 적절하게 두 번 넣어서 예외가 발생하지 않도록 했다.
4. 코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Queue;
public class Main {
private static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
Queue<Integer> queue = new ArrayDeque<>();
for(int i=1;i<N+1;i++) {
queue.offer(i);
}
int size = queue.size();
while(true) {
if(size ==1) {
break;
}
queue.poll();
size--;
if(size == 1) {
break;
}
int num = queue.poll();
queue.offer(num);
}
System.out.println(queue.poll());
}
}
'ALGORITHM' 카테고리의 다른 글
백준 11727 2xn 타일링 2 (Java) (0) | 2023.02.16 |
---|---|
백준 11726 2xN 타일링 (Java) (0) | 2023.02.15 |
백준 7576 토마토 (Java) (0) | 2023.02.13 |
백준 14501 퇴사 (Java) (0) | 2023.02.12 |
백준 1244 스위치 켜고 끄기 (Java) (0) | 2023.02.11 |