-
[๋ฐฑ์ค(BOJ) 2164๋ฒ] ์นด๋2 (C++)PS(Problem Solving)/C++ 2022. 1. 17. 22:48๋ฐ์ํ
๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/2164
๋ฌธ์ ์ ๋ณด
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ ์ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๋จ๊ฒ ๋๋ ์นด๋์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด
๋ฌธ์ ์ ์กฐ๊ฑด์ ์ ์ฝ์ด์ ํ๋ก ํ์ด์ผ ํ๋ค๋ ๊ฒ์ ํ์ ํ๋ฉด ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค. ๋ฌธ์ ์์ 1๋ถํฐ n๊น์ง์ ์นด๋๋ฅผ 1์ด ์ ์ผ ์๋ก ์ค๊ฒ ์์๋๋ก ๋ฐ์ผ๋ก ๋์ฌ์ ธ ์๊ณ , ์ ์ผ ์์ ์๋ ์นด๋๋ฅผ ๋ฒ๋ฆฐ๋ค๋ ๊ฒ์ ํตํด ๋จผ์ ๋ค์ด๊ฐ ๊ฒ์ด ๋จผ์ ๋์ค๋ (FIFO) ๊ตฌ์กฐ๋ฅผ ๋ ์ฌ๋ฆด ์ ์๋ค.
์์ค ์ฝ๋
#include <bits/stdc++.h> using namespace std; int main(void) { ios::sync_with_stdio(0); cin.tie(0); int n; cin >> n; queue<int> Q; for (int i = 1; i <= n; i++) { Q.push(i); } while (Q.size() != 1) { Q.pop(); int temp = Q.front(); Q.push(temp); Q.pop(); } cout << Q.front(); return 0; }
๋ฐ์ํ