๋ฌธ์
๋ฌธ์ ๋งํฌ https://www.acmicpc.net/problem/2164
- N์ฅ์ ์นด๋๊ฐ ์๋ค. ๊ฐ๊ฐ์ ์นด๋๋ ์ฐจ๋ก๋ก 1๋ถํฐ N๊น์ง์ ๋ฒํธ๊ฐ ๋ถ์ด ์์ผ๋ฉฐ, 1๋ฒ ์นด๋๊ฐ ์ ์ผ ์์, N๋ฒ ์นด๋๊ฐ ์ ์ผ ์๋์ธ ์ํ๋ก ์์๋๋ก ์นด๋๊ฐ ๋์ฌ ์๋ค.
- ์ด์ ๋ค์๊ณผ ๊ฐ์ ๋์์ ์นด๋๊ฐ ํ ์ฅ ๋จ์ ๋๊น์ง ๋ฐ๋ณตํ๊ฒ ๋๋ค. ์ฐ์ , ์ ์ผ ์์ ์๋ ์นด๋๋ฅผ ๋ฐ๋ฅ์ ๋ฒ๋ฆฐ๋ค. ๊ทธ ๋ค์, ์ ์ผ ์์ ์๋ ์นด๋๋ฅผ ์ ์ผ ์๋์ ์๋ ์นด๋ ๋ฐ์ผ๋ก ์ฎ๊ธด๋ค.
- ์๋ฅผ ๋ค์ด N=4์ธ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด ๋ณด์. ์นด๋๋ ์ ์ผ ์์์๋ถํฐ 1234 ์ ์์๋ก ๋์ฌ์๋ค. 1์ ๋ฒ๋ฆฌ๋ฉด 234๊ฐ ๋จ๋๋ค. ์ฌ๊ธฐ์ 2๋ฅผ ์ ์ผ ์๋๋ก ์ฎ๊ธฐ๋ฉด 342๊ฐ ๋๋ค. 3์ ๋ฒ๋ฆฌ๋ฉด 42๊ฐ ๋๊ณ , 4๋ฅผ ๋ฐ์ผ๋ก ์ฎ๊ธฐ๋ฉด 24๊ฐ ๋๋ค. ๋ง์ง๋ง์ผ๋ก 2๋ฅผ ๋ฒ๋ฆฌ๊ณ ๋๋ฉด, ๋จ๋ ์นด๋๋ 4๊ฐ ๋๋ค.
- N์ด ์ฃผ์ด์ก์ ๋, ์ ์ผ ๋ง์ง๋ง์ ๋จ๊ฒ ๋๋ ์นด๋๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
- ์ฒซ์งธ ์ค์ ์ ์ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์ด์ง๋ค.
- ์ฒซ์งธ ์ค์ ๋จ๊ฒ ๋๋ ์นด๋์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋ค.
์์ด๋์ด
- ํ์ ๋ฃ์ด์ ๊ฐ์ ๋นผ๊ณ ๋ค์ ๋ฃ๊ณ ๋ฐ๋ณตํด์ ํ์ ์ฌ์ด์ฆ๊ฐ 1์ด ๋ ๋ While๋ฌธ์ ์ข
๋ฃํ๊ณ ๋จ์ ๊ฐ์ ์ถ๋ ฅํ๋ค.
๊ฒช์ ์ํ์ฐฉ์ค
- ์ฒ์์๋ ํ๋ฅผ ์๊ฐํ์ง ๋ชปํ๊ณ While๋ฌธ์ ์กฐ๊ฑด์ ์กฐ๊ฑด์ ๋ฌ์์ ๊ตฌํ์ผ๋ก ํ์ด๋ณด๋ คํ์ง๋ง.... ์๊ฐ๋๋ก ๋์ง ์์ ๊ฒฐ๊ตญ ํ๋ก ํ๊ฒ ๋์๋ค... ใ ใ
์ฝ๋
import java.io.*;
import java.util.*;
public class BOJ2164 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
// ํ ์ฌ์ฉ
Queue<Integer> q = new LinkedList<>();
// ํ ๊ฐ์ ์์๋๋ก ์ซ์๋ฅผ ๋ฃ์
for(int i = 1; i <= N; i++){
q.offer(i);
}
// ํ์ ๋จ์ ์ซ์๊ฐ ํ๊ฐ๊ฐ ๋๋ฉด While๋ฌธ ์ข
๋ฃ
while(true){
if(q.size() == 1){
break;
}
// ์ฒ์ ์ซ์ ๊บผ๋ด๊ธฐ
q.poll();
// ๋ค์ ์ซ์๋ฅผ ๊บผ๋ด์ ์ ์ฅ ํ
int n = q.poll();
// ๋ค์ ๋ค์ ์ ์ฅ
q.offer(n);
}
System.out.println(q.poll());
}
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] BOJ 4949 ๊ท ํ์กํ ์ธ์ (2) | 2024.07.19 |
---|---|
[Java] BOJ 2839 ์คํ ๋ฐฐ๋ฌ (0) | 2024.07.18 |
[Java] BOJ 1920 ์ ์ฐพ๊ธฐ (0) | 2024.07.17 |
[Java] BOJ 1018 ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ (0) | 2024.07.17 |
[Java] BOJ 11866 ์์ธํธ์ค ๋ฌธ์ 0 (0) | 2024.07.17 |