ํฐ์คํ ๋ฆฌ ๋ทฐ

์ฒ์ ์ด ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ์๊ฐ๋ ๊ฒ์ .. ์ํ ํ์๋ค ๊ทธ๋์ ๊ตฌํํ๋ ค๊ณ ์๊ฐํด๋ณด์์ผ๋.. ์ฌ๋๋ค์ด ์ ๊ฑฐ๋ ๋๋ง๋ค ๋น ๊ณต๊ฐ์ ๋ก๊ฒจ์ ๋ด๋ ค์์ผ ํ๊ณ ?... ์ข ๊น๋ค๋ก์ ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฐพ์๋ค
๋ฐ๋ก C++์ SLT์ค ํ๋์ธ Queue๋ฅผ ์ด์ฉํ๋ ๊ฒ
k๋ฒ์งธ ์ฌ๋์ด ์ ๊ฑฐ๋ ๋๋ pop์ ํ๋ฉด ๋์ง๋ง ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ ๋งจ ์ ์์(front)๋ฅผ ํ์ pushํ ๋ค pop์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํ๊ฐ empty๊ฐ ๋ ๋๊น์ง ๋ฐ๋ณตํ๋ ๋ฐฉ๋ฒ์ด๋ค
// BOJ 1158๋ฒ : ์์ธํธ์ค ๋ฌธ์
#include <iostream>
#include <queue>
using namespace std;
int main() {
int n, k; // n: ์ฌ๋ ์ / k: k๋ฒ์งธ ์ฌ๋ ์ ๊ฑฐ
cin >> n >> k;
queue <int> q; // q ์์ฑ
int count = 1; // ์ ์ฒด ์ซ์ ์ธ๋ ๋ณ์
int result = 1; // ์์ด ์ถ๋ ฅ์ด ์ผ๋ง๋ ๋์๋์ง ์ธก์ ๋ณ์
for(int i = 1; i <= n; i++){
q.push(i); // ํ์ ์์๋๋ก ์ซ์ ์ ์ฅ
}
cout << "<";
while(q.size()){ // ํ์ ์์๊ฐ ์กด์ฌํ ๋
if(count % k == 0){ // ์ซ์ ์ถ๋ ฅ (k๋ฒ์งธ)
if(result == n){ // ๋ง์ฝ ์ถ๋ ฅ ๋ง์ง๋ง ์์๋ผ๋ฉด
cout << q.front() << ">"; // ์ถ๋ ฅํ๊ณ ๋ซ์์ค
break; // ๋ฐ๋ณต๋ฌธ ์ข
๋ฃ
}
cout << q.front() << ", "; // ์์ ์ถ๋ ฅํด ์ค
q.pop(); // ์ถ๋ ฅํ ์์๋ ์ ๊ฑฐ
result++; // ์ถ๋ ฅํ์ผ๋ฏ๋ก result ์ฆ๊ฐ
}
else{ // ์ถ๋ ฅํ ๋๊ฐ ์๋๋ผ๋ฉด
q.push(q.front()); // ๋งจ ์ ์์๋ฅผ ๋ค์ ๋ค์ ์ถ๊ฐ
q.pop(); // ๋ค์ ์ถ๊ฐํ์ผ๋ฏ๋ก ๋งจ ์ ์์ ์ ๊ฑฐ
}
count++; // count ๋ณ์ ์ฆ๊ฐ
}
}
๋งจ ๋ '>' ๋ซ๋ ๊ณผ์ ์์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊น ๊ณ ๋ฏผํ๋ค๊ฐ result ๋ณ์๋ฅผ ์ถ๊ฐํด์ ์ฒ๋ฆฌํด์ฃผ์๋ค

'๐ STUDY > ๐ baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [baekjoon] 17608๋ฒ : ๋ง๋๊ธฐ (C++) (2) | 2021.09.07 |
|---|---|
| [baekjoon] 12605๋ฒ : ๋จ์ด์์ ๋ค์ง๊ธฐ (C++) (0) | 2021.09.07 |
| [baekjoon] 11279๋ฒ : ์ต๋ ํ (C++) (0) | 2021.09.07 |
| [baekjoon] 1655๋ฒ : ๊ฐ์ด๋ฐ๋ฅผ ๋งํด์ (C++) (0) | 2021.09.05 |
| [baekjoon] 12865๋ฒ : ํ๋ฒํ ๋ฐฐ๋ญ (C++) (0) | 2021.09.01 |
๊ณต์ ํ๊ธฐ ๋งํฌ
Comments
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
TAG
- ํ๋ก์ธ์ค
- Baekjoon
- Programming
- C++
- react-scripts
- ์ค๋ฅ
- ๋จธ์ ๋ฌ๋
- GIT
- SpringBoot
- ํ๋ก๊ทธ๋๋ฐ
- ๋ฆฌ๋ ์ค
- PHP
- ์ค์น
- ๋ฐฑ์ค
- machine learning
- ๋ฒํผ
- react
- bitnami
- Apache
- ํ์ผ ์ ์ถ๋ ฅ
- ์๊ณ ๋ฆฌ์ฆ
- ๋ค์คํ๋ก์ธ์ค
- Linux
- MySQL
- Annotation
- ๊ธฐ๊ณํ์ต
- SWiFT
- 9086๋ฒ
- C
- error
- Total
- Today
- Yesterday