๐Ÿ™‡โ€โ™€๏ธ[Silver V] ์นด๋“œ1 - 2161

๋ฌธ์ œ ๋งํฌ

์„ฑ๋Šฅ ์š”์•ฝ

๋ฉ”๋ชจ๋ฆฌ: 2020 KB, ์‹œ๊ฐ„: 0 ms

๋ถ„๋ฅ˜

์ž๋ฃŒ ๊ตฌ์กฐ, ๊ตฌํ˜„, ํ

์ œ์ถœ ์ผ์ž

2023๋…„ 12์›” 23์ผ 17:49:55

๋ฌธ์ œ ์„ค๋ช…

N์žฅ์˜ ์นด๋“œ๊ฐ€ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ์นด๋“œ๋Š” ์ฐจ๋ก€๋กœ 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์–ด ์žˆ์œผ๋ฉฐ, 1๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์œ„์—, N๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์•„๋ž˜์ธ ์ƒํƒœ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์นด๋“œ๊ฐ€ ๋†“์—ฌ ์žˆ๋‹ค.

์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ์นด๋“œ๊ฐ€ ํ•œ ์žฅ ๋‚จ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋œ๋‹ค. ์šฐ์„ , ์ œ์ผ ์œ„์— ์žˆ๋Š” ์นด๋“œ๋ฅผ ๋ฐ”๋‹ฅ์— ๋ฒ„๋ฆฐ๋‹ค. ๊ทธ ๋‹ค์Œ, ์ œ์ผ ์œ„์— ์žˆ๋Š” ์นด๋“œ๋ฅผ ์ œ์ผ ์•„๋ž˜์— ์žˆ๋Š” ์นด๋“œ ๋ฐ‘์œผ๋กœ ์˜ฎ๊ธด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด N=4์ธ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์ž. ์นด๋“œ๋Š” ์ œ์ผ ์œ„์—์„œ๋ถ€ํ„ฐ 1234 ์˜ ์ˆœ์„œ๋กœ ๋†“์—ฌ์žˆ๋‹ค. 1์„ ๋ฒ„๋ฆฌ๋ฉด 234๊ฐ€ ๋‚จ๋Š”๋‹ค. ์—ฌ๊ธฐ์„œ 2๋ฅผ ์ œ์ผ ์•„๋ž˜๋กœ ์˜ฎ๊ธฐ๋ฉด 342๊ฐ€ ๋œ๋‹ค. 3์„ ๋ฒ„๋ฆฌ๋ฉด 42๊ฐ€ ๋˜๊ณ , 4๋ฅผ ๋ฐ‘์œผ๋กœ ์˜ฎ๊ธฐ๋ฉด 24๊ฐ€ ๋œ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ 2๋ฅผ ๋ฒ„๋ฆฌ๊ณ  ๋‚˜๋ฉด, ๋ฒ„๋ฆฐ ์นด๋“œ๋“ค์€ ์ˆœ์„œ๋Œ€๋กœ 1 3 2๊ฐ€ ๋˜๊ณ , ๋‚จ๋Š” ์นด๋“œ๋Š” 4๊ฐ€ ๋œ๋‹ค.

N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฒ„๋ฆฐ ์นด๋“œ๋“ค์„ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๊ณ , ๋งˆ์ง€๋ง‰์— ๋‚จ๊ฒŒ ๋˜๋Š” ์นด๋“œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ •์ˆ˜ N(1 โ‰ค N โ‰ค 1,000)์ด ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๋ฒ„๋ฆฌ๋Š” ์นด๋“œ๋“ค์„ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ์ œ์ผ ๋งˆ์ง€๋ง‰์—๋Š” ๋‚จ๊ฒŒ ๋˜๋Š” ์นด๋“œ์˜ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿš€ํ’€์ด

๊ธฐ๋ณธ์ ์ด queue์‘์šฉ ๋ฌธ์ œ์˜€๋‹ค.

int n;
queue<int> q;

void solve()
{
	cin >> n;

	for (int i = 1; i <= n; ++i)
		q.push(i);

	while (q.size() != 1)
	{
        // ๋งจ ์•ž์˜ ์นด๋“œ ๋ฒ„๋ฆฌ๊ธฐ์™€ ์ถœ๋ ฅ
		cout << q.front() << " ";
		q.pop();

        // ๊ทธ ๋‹ค์Œ์žฅ์€ ํ์—์„œ ๋นผ๊ณ  ๋‹ค์‹œ ๋งจ๋’ค๋กœ ๋„ฃ๊ธฐ
		int temp = q.front();
		q.pop();
		q.push(temp);
	}

    // ํ•œ์žฅ ๋‚จ์•˜์œผ๋ฏ€๋กœ ์ถœ๋ ฅ
	cout << q.front();
}

์ง€๊ธˆ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ q.empty() == false ์ผ ๋•Œ๊นŒ์ง€ ํ•ด๋„ ๋˜๊ฒ ๋‹ค.

์™œ ๊ทธ๋žฌ์ง€.

๐Ÿš€์ „์ฒด ์ฝ”๋“œ

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include<iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <queue>

using namespace std;

int n;
queue<int> q;

void solve()
{
	cin >> n;

	for (int i = 1; i <= n; ++i)
		q.push(i);

	while (q.size() != 1)
	{
		cout << q.front() << " ";
		q.pop();
		int temp = q.front();
		q.pop();
		q.push(temp);
	}

	cout << q.front();
}

int main() 
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	//freopen("input.txt", "rt", stdin);

	solve();

	return 0;
}

ํƒœ๊ทธ:

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: