01-09 18:44
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

miinsun

[Algorithm]์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž๋ฐ”_40 ๊ณต์ฃผ ๊ตฌํ•˜๊ธฐ ๋ณธ๋ฌธ

Algorithm/Java

[Algorithm]์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž๋ฐ”_40 ๊ณต์ฃผ ๊ตฌํ•˜๊ธฐ

miinsun 2022. 1. 9. 02:31

 

๐Ÿ’ฌ ๋ฌธ์ œ ์„ค๋ช…

์ •๋ณด ์™•๊ตญ ์˜ ์ด์›ƒ ๋‚˜๋ผ ์™ธ๋™๋”ธ ๊ณต์ฃผ๊ฐ€ ์ˆฒ์†์˜ ๊ดด๋ฌผ์—๊ฒŒ ์žกํ˜€๊ฐ”์Šต๋‹ˆ๋‹ค.์ •๋ณด ์™•๊ตญ์—๋Š” ์™•์ž๊ฐ€ N๋ช…์ด ์žˆ๋Š”๋ฐ ์„œ๋กœ ๊ณต์ฃผ๋ฅผ ๊ตฌํ•˜๋Ÿฌ ๊ฐ€๊ฒ ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ •๋ณด์™•๊ตญ์˜ ์™•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณต์ฃผ๋ฅผ ๊ตฌํ•˜๋Ÿฌ ๊ฐˆ ์™•์ž๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

1. ์™•์€ ์™•์ž๋“ค์„ ๋‚˜์ด ์ˆœ์œผ๋กœ 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€ ์ฐจ๋ก€๋กœ ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ธด๋‹ค.
2. 1๋ฒˆ ์™•์ž๋ถ€ํ„ฐ N๋ฒˆ ์™•์ž๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ ๋Œ์•„๊ฐ€๋ฉฐ ๋™๊ทธ๋ž—๊ฒŒ ์•‰๊ฒŒ ํ•œ๋‹ค.
3. 1๋ฒˆ ์™•์ž๋ถ€ํ„ฐ ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ๋Œ์•„๊ฐ€๋ฉฐ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๋ฒˆํ˜ธ๋ฅผ ์™ธ์น˜๊ฒŒ ํ•œ๋‹ค.
4. ํ•œ ์™•์ž๊ฐ€ K(ํŠน์ •์ˆซ์ž)๋ฅผ ์™ธ์น˜๋ฉด ๊ทธ ์™•์ž๋Š” ๊ณต์ฃผ๋ฅผ ๊ตฌํ•˜๋Ÿฌ ๊ฐ€๋Š”๋ฐ์„œ ์ œ์™ธ๋˜๊ณ  ์› ๋ฐ–์œผ๋กœ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.
5. ๋‹ค์Œ ์™•์ž๋ถ€ํ„ฐ ๋‹ค์‹œ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๋ฒˆํ˜ธ๋ฅผ ์™ธ์นœ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•ด์„œ ๋งˆ์ง€๋ง‰๊นŒ์ง€ ๋‚จ์€ ์™•์ž๊ฐ€ ๊ณต์ฃผ๋ฅผ ๊ตฌํ•˜๋Ÿฌ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ์ด 8๋ช…์˜ ์™•์ž๊ฐ€ ์žˆ๊ณ , 3์„ ์™ธ์นœ ์™•์ž๊ฐ€ ์ œ์™ธ๋œ๋‹ค๊ณ  ํ•˜์ž. ์ฒ˜์Œ์—๋Š” 3๋ฒˆ ์™•์ž๊ฐ€ 3์„ ์™ธ์ณ ์ œ์™ธ๋œ๋‹ค.
์ด์–ด 6, 1, 5, 2, 8, 4๋ฒˆ ์™•์ž๊ฐ€ ์ฐจ๋ก€๋Œ€๋กœ ์ œ์™ธ๋˜๊ณ  ๋งˆ์ง€๋ง‰๊นŒ์ง€ ๋‚จ๊ฒŒ ๋œ 7๋ฒˆ ์™•์ž์—๊ฒŒ ๊ณต์ฃผ๋ฅผ ๊ตฌํ•˜๋Ÿฌ๊ฐ‘๋‹ˆ๋‹ค.

N๊ณผ K๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๊ณต์ฃผ๋ฅผ ๊ตฌํ•˜๋Ÿฌ ๊ฐˆ ์™•์ž์˜ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

 

๐Ÿ”จ ์ž…์ถœ๋ ฅ ์˜ˆ

์ž…๋ ฅ - ์ฒซ ์ค„์— ์ž์—ฐ์ˆ˜ N(5<=N<=1,000)๊ณผ K(2<=K<=9)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

8 3

์ถœ๋ ฅ - ์ฒซ ์ค„์— ๋งˆ์ง€๋ง‰ ๋‚จ์€ ์™•์ž์˜ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

7

 

 

โ€‹

๐Ÿ’ป Solution.java

import java.util.*;

public class Main {

	public int solution(int n, int k) {
		int answer = 0;
		
		Queue<Integer> q = new LinkedList<>();
		for(int i = 1; i <= n; i++) {
			q.add(i);
		}
		
		while(!q.isEmpty()) {
			for(int i = 0; i < k; i++) {
				if(i == k - 1)
					answer = q.poll();
				else
					q.add(q.poll());
			}
		}
		
        return answer;
	}
	
	public static void main(String[] args){
		Main main  = new Main();
		Scanner sc =new Scanner(System.in);
		
		int n = sc.nextInt();
		int k = sc.nextInt();
		
		System.out.println(main.solution(n,k));
		
		sc.close();
		return ;
	}
}

 

 

 

Comments