01
11
๋ฐ˜์‘ํ˜•

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

 

1158๋ฒˆ: ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ

์ฒซ์งธ ์ค„์— N๊ณผ K๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ K ≤ N ≤ 5,000)

www.acmicpc.net


์˜ค๋‹ต๋…ธํŠธ(ํ‘ธ๋Š” ๋™์•ˆ ์‚ฌ๊ณ ๊ณผ์ • ๋ฐ ๊ฐœ์„ ์ )

import java.util.*;
import java.io.*;

public class Main
{
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        Queue<Integer> q = new LinkedList<>();
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int k = Integer.parseInt(st.nextToken());

        for(int i=1; i<=n; i++){
            q.offer(i); // 1๋ถ€ํ„ฐ N๊นŒ์ง€
        }
        System.out.print("<");
        while(!q.isEmpty()){
            // k-1๋งŒํผ ๋’ค๋กœ ๋ณด๋‚ด๊ณ , poll
            for(int i=0; i<k-1; i++){
                q.offer(q.poll());
            }
            System.out.print(q.poll()+", ");
            if(q.size()==1){
                System.out.print(q.poll());
            }
        }
        System.out.print(">");
    }
}

 

ํ•œ๋ฒˆ์— ๋งž์ถœ ์ˆ˜ ์žˆ์—ˆ๋Š” ๋ฐ ์ •๋ง ์•„์‰ฌ์šด ๋ฌธ์ œ์˜€๋‹ค. ์•„์ด๋””์–ด๋Š” ํ๋ฅผ ์‚ฌ์šฉํ•ด์„œ, pollํ•œ๊ฑธ ๊ณง๋ฐ”๋กœ offerํ•ด์ฃผ๋Š”, ์›ํ˜• ํ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค. 95%์ฏค์—์„œ ํ‹€๋ ค์„œ ์งˆ๋ฌธ๊ฒŒ์‹œํŒ์˜ ๋ฐ˜๋ก€๋ฅผ ๊ณ„์† ์บ๋ณด๋‹ค ๋ณด๋‹ˆ 1 1 ์ผ ๋•Œ ๊ฐ’์ด ์ด์ƒํ•˜๊ฒŒ ๋‚˜์˜จ๋‹ค๋Š” ๊ฑธ ์•Œ๊ฒŒ ๋๋‹ค. 1 1์ด๋ฉด if๋ฌธ์œผ๋กœ ์„ ์–ธํ•œ ๋ถ€๋ถ„๋งŒ ํƒ€๊ฒŒ ๋˜์–ด์„œ <1, >๋กœ ์ถœ๋ ฅ์ด ๋œ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ๋‹ต์€ <1>์ด๋‹ค.

 


์ •๋‹ต์ฝ”๋“œ

import java.util.*;
import java.io.*;

public class Main
{
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        Queue<Integer> q = new LinkedList<>();
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int k = Integer.parseInt(st.nextToken());

        for(int i=1; i<=n; i++){
            q.offer(i); // 1๋ถ€ํ„ฐ N๊นŒ์ง€
        }
        System.out.print("<");
        while(!q.isEmpty()){
            if(q.size()==1){
                System.out.print(q.poll());
            }else{
                // k-1๋งŒํผ ๋’ค๋กœ ๋ณด๋‚ด๊ณ , poll
                for(int i=0; i<k-1; i++){
                    q.offer(q.poll());
                }
                System.out.print(q.poll()+", ");
            }
        }
        System.out.print(">");
    }
}

 

 

 

๋„์›€์ด ๋๋‹ค๋ฉด ๋Œ“๊ธ€์ด๋‚˜ ๊ณต๊ฐ ๋ฒ„ํŠผ ํ•œ ๋ฒˆ์”ฉ ๋ˆ„๋ฅด๊ณ  ๊ฐ€์ฃผ์„ธ์š”! ๋กœ๊ทธ์ธ ์•ˆํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค ^_^

 

๋ฐ˜์‘ํ˜•
COMMENT