[๋ฐฑ์ค€] ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ 1158 (Silver4) - C++

2026. 1. 18. 01:17ยทAlgorithms/Problem Solving

 ๋ฌธ์ œ ๋งํฌ

https://www.acmicpc.net/problem/1158

 


๐Ÿ“Œ ๋ฌธ์ œ ์š”์•ฝ

  • 1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์€ ์‚ฌ๋žŒ๋“ค์ด ์›ํ˜•์œผ๋กœ ์•‰์•„ ์žˆ๋‹ค.
  • ๋งค๋ฒˆ K๋ฒˆ์งธ ์‚ฌ๋žŒ์„ ์ œ๊ฑฐํ•œ๋‹ค.
  • ์ œ๊ฑฐ๋˜๋Š” ์ˆœ์„œ๋ฅผ < > ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

์ „ํ˜•์ ์ธ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ,
์ด ๋ฌธ์ œ์˜ ๋ณธ์งˆ์€ “์›ํ˜• ๊ตฌ์กฐ๋ฅผ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•  ๊ฒƒ์ธ๊ฐ€”์— ์žˆ๋‹ค.


๐Ÿ’ก ์ ‘๊ทผ ์•„์ด๋””์–ด

์ฒ˜์Œ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋‹ค.

  • ๋ฐฐ์—ด + ์ธ๋ฑ์Šค ๊ณ„์‚ฐ
  • ์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
  • ์ˆ˜ํ•™์  ์ ํ™”์‹

ํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ์—์„œ ๊ฐ€์žฅ ์ง๊ด€์ ์ด๊ณ  ์‹ค์ˆ˜ ์—†๋Š” ๋ฐฉ๋ฒ•์€ ํ(queue) ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํ•ต์‹ฌ ๊ด€์ฐฐ

“์›ํ˜•(Cycle)์€ ์„ ์ž…์„ ์ถœ(FIFO)์˜ ์žฌ์ž…๋ ฅ์ด๋‹ค.”

  • ๋งจ ์•ž ์‚ฌ๋žŒ์„ ๊บผ๋‚ด์„œ ๋‹ค์‹œ ๋งจ ๋’ค๋กœ ๋ณด๋‚ด๋ฉด
  • ์‚ฌ๋žŒ๋“ค์€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์›ํ˜•์œผ๋กœ ํšŒ์ „ํ•œ๋‹ค

๊ตณ์ด % ์—ฐ์‚ฐ์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ๊ณ„์‚ฐํ•˜๊ฑฐ๋‚˜,
๋ณต์žกํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๋‹ค.


๊ตฌํ˜„ ์ฝ”๋“œ (C++)

#include <bits/stdc++.h>
//ctr + alt +n

using namespace std;

int main(){
    int n, k;
    cin>>n>>k;

    queue<int> q;
    vector<int> v;
    for(int i=0;i<n;i++){
        q.push(i+1);
    }
    int tmp;
    while(!q.empty()){
        for(int i=0;i<k-1;i++){
            tmp=q.front();
            q.pop();
            q.push(tmp);
        }
        tmp=q.front();
        v.push_back(tmp);
        q.pop();
    }
    cout<<"<";
    for(int i=0;i<v.size()-1;i++){
        cout<<v[i]<<", ";
    }
    cout<<v.back()<<'>';
 

    return 0;
}
 

 ์ด ํ’€์ด๊ฐ€ ๊น”๋”ํ•œ ์ด์œ 

1.  ์ˆœํ™˜์€ FIFO์˜ ์žฌ์ž…๋ ฅ์ด๋‹ค

  • pop() → push()๋Š”
    ์›ํ˜• ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ๋ฅผ ํ•œ ์นธ ๋Œ๋ฆฌ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค
  • ํ ํ•˜๋‚˜๋งŒ์œผ๋กœ ์›ํ˜• ๊ตฌ์กฐ๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ‘œํ˜„

๐Ÿ‘‰ ์›ํ˜• ๋ฆฌ์ŠคํŠธ, % ์—ฐ์‚ฐ ์—†์ด๋„ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ


2. ๋ณด๋ฅ˜์™€ ํ™•์ •์˜ ๋ถ„๋ฆฌ

์ด ๋ฌธ์ œ๋ฅผ ์ด๋ ‡๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ํ›จ์”ฌ ๋‹จ์ˆœํ•ด์ง„๋‹ค.

  • K-1๋ช… → ์•„์ง ์ œ๊ฑฐ ๋Œ€์ƒ ์•„๋‹˜ → ๋’ค๋กœ ๋ณด๋ƒ„ (๋ณด๋ฅ˜)
  • K๋ฒˆ์งธ → ์ œ๊ฑฐ ๋Œ€์ƒ → ์˜๊ตฌ ์ดํƒˆ (ํ™•์ •)
 
for(int i = 0; i < k-1; i++){ q.push(q.front()); q.pop(); }
 

๐Ÿ‘‰ “์‚ญ์ œ”๋ณด๋‹ค
๐Ÿ‘‰ “์‚ญ์ œ๋  ์‚ฌ๋žŒ์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ณผ์ •”์ด ํ•ต์‹ฌ


3. ์ธ๋ฑ์Šค ๊ด€๋ฆฌ ๋Œ€์‹  ์ƒํƒœ ๊ด€๋ฆฌ

๋ฐฐ์—ด๋กœ ํ’€๋ฉด ํ•ญ์ƒ ์ด๋Ÿฐ ๊ณ ๋ฏผ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

  • ์ง€๊ธˆ ์ธ๋ฑ์Šค๊ฐ€ ๋ช‡์ด์ง€?
  • ํ•˜๋‚˜ ์‚ญ์ œํ–ˆ์œผ๋‹ˆ ๋’ค์— ๊ฒƒ๋“ค ๋‹ค ๋‹น๊ฒจ์•ผ ํ•˜๋‚˜?
  • off-by-one ์—๋Ÿฌ ์•ˆ ๋‚ฌ๋‚˜?

ํ๋ฅผ ์“ฐ๋ฉด ์ด๋Ÿฐ ๊ณ ๋ฏผ์ด ์‚ฌ๋ผ์ง„๋‹ค.

“๋‚ด๊ฐ€ ์‚ฌ๋žŒ์„ ์ฐพ์•„๋‹ค๋‹ˆ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ,
์‚ฌ๋žŒ๋“ค์ด ๋‚ด ์•ž(front)์„ ์ง€๋‚˜๊ฐ€๊ฒŒ ๋งŒ๋“ ๋‹ค.”

  • ๋‚˜๋Š” ์˜ค์ง front()๋งŒ ๋ณธ๋‹ค
  • ์ธ๋ฑ์Šค ๊ณ„์‚ฐ ์ž์ฒด๊ฐ€ ํ•„์š” ์—†์Œ

๐Ÿ‘‰ ์ค‘๊ฐ„ ์‚ญ์ œ๊ฐ€ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ œ์—์„œ ํ๋Š” ์‹ค์ˆ˜ ๋ฐฉ์ง€์šฉ ๋„๊ตฌ

์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ๋Š” ‘์‚ญ์ œ’๊ฐ€ ํ•ต์‹ฌ์ด ์•„๋‹ˆ๋ผ,
์‚ญ์ œ๋  ๋Œ€์ƒ์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๋‚˜๋จธ์ง€๋ฅผ ๋’ค๋กœ ๋Œ๋ฆฌ๋Š”
‘ํšŒ์ „(Rotation)’ ๊ณผ์ •์ด ํ•ต์‹ฌ์ด๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ทธ ํšŒ์ „์„ ๊ฐ€์žฅ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ํ์ด๋‹ค.


๐Ÿ“Œ ๊ฐœ์ธ ๋ฌธ์ œํ’€์ด ๋ ˆํฌ

๐Ÿ“‚ GitHub
https://github.com/zzmnxn/algorithm-study

 

'Algorithms > Problem Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] ๋‘ ์ˆ˜์˜ ํ•ฉ 3273 (Silver3) โ€” ํ•ด์‹œ ๊ฐœ๋…์œผ๋กœ ์‹œ๊ฐ„๋ณต์žก๋„ ์ค„์ด๊ธฐ  (0) 2026.01.21
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ 42586 (Level 2) - C++  (0) 2026.01.18
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ 76502 (Level 2) - C++  (0) 2026.01.18
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‹คํŒจ์œจ 42889 (Level 1) - C++  (1) 2026.01.18
14425 ๋ฌธ์ž์—ด ์ง‘ํ•ฉ[c++] unordered_set  (0) 2024.02.12
'Algorithms/Problem Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] ๋‘ ์ˆ˜์˜ ํ•ฉ 3273 (Silver3) — ํ•ด์‹œ ๊ฐœ๋…์œผ๋กœ ์‹œ๊ฐ„๋ณต์žก๋„ ์ค„์ด๊ธฐ
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ 42586 (Level 2) - C++
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ 76502 (Level 2) - C++
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‹คํŒจ์œจ 42889 (Level 1) - C++
wlals916
wlals916
  • wlals916
    JM.devlog
    wlals916
    GitHub
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (28)
      • Algorithms (20)
        • Problem Solving (14)
        • Language & Concept (6)
      • Backend (7)
        • Study Notes (1)
        • Trouble Shooting (6)
        • Development (0)
      • AI (0)
      • Review (1)
      • Dev Log (0)
  • ๊ด€๋ฆฌ์ž

    • ๊ธ€์“ฐ๊ธฐ
    • ๊ด€๋ฆฌ ํŽ˜์ด์ง€
    • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์“ฐ๊ธฐ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ฝ”ํ…Œ
    ๊น€์˜ํ•œ
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๋ฐฑ์—”๋“œ
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ํšŒ๊ณ 
    C++
    ๋ฐฑ์ค€
    DevOps
    SpringBoot
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.6
wlals916
[๋ฐฑ์ค€] ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ 1158 (Silver4) - C++
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”