ใ๋ชฉ์ฐจใ
0. ๊ฐ์
1. ๋ฌธ์
2. ํ์ด
3. ์ฝ๋
0. ๊ฐ์
์๋ฃ๊ตฌ์กฐ, ํ ๋ฌธ์ .
1. ๋ฌธ์
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]
6
[์์ ์ถ๋ ฅ 1]
4
2. ํ์ด
๋ฌธ์ ๋ฅผ ์ฝ๊ณ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๊ธฐ๋ง ํ๋ฉด ํ๋ฆฌ๋ ์ฌ์ด ๋ฌธ์ ๋ผ, ์์ธํ ํ์ด๋ ์๋ตํ๊ฒ ๋ค. (์๋ ์ฝ๋ ์ฐธ์กฐ)
3. ์ฝ๋
#include <iostream>
#include <queue>
using namespace std;
int main(int argc, char* argv[]) {
/* Faster */
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
/* Init */
queue<int> q;
/* Input */
int N; cin >> N;
/* Calculate */
for (int i = 1; i <= N; i++)
q.push(i);
while (q.size() != 1) {
q.pop();
q.push(q.front());
q.pop();
}
/* Output */
cout << q.front();
/* End */
return 0;
}
'ใโจ๏ธแดsใPS > ๋ฐฑ์ค_์๋ฃ๊ตฌ์กฐ[DS]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon/๋ฐฑ์ค][11003][C/C++] ์ต์๊ฐ ์ฐพ๊ธฐ (0) | 2023.05.05 |
---|---|
[Baekjoon/๋ฐฑ์ค][1966][C/C++] ํ๋ฆฐํฐ ํ (0) | 2023.05.03 |
[Baekjoon/๋ฐฑ์ค][18258][C/C++] ํ 2 (0) | 2023.05.03 |
[Baekjoon/๋ฐฑ์ค][10845][C/C++] ํ (0) | 2023.05.03 |
[Baekjoon/๋ฐฑ์ค][1406][C/C++] ์๋ํฐ (0) | 2023.05.03 |