๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 4962_Next Mayor

๋ฟŒ์•ผ._. 2025. 10. 2. 11:54
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/4962)

< Next Mayor >

 

๋ฌธ์ œ ํ’€์ด 

 

๋‹ค์Œ ๊ทœ์น™์— ๋”ฐ๋ผ ์Šน์ž๋ฅผ ํŒ๋ณ„ํ•œ๋‹ค.

1. ์ž๊ฐˆ์ด 1๊ฐœ ์ด์ƒ ์žˆ๋‹ค๋ฉด -> ์ž๊ฐˆ์„ 1๊ฐœ ๊บผ๋‚ด์„œ ๋ณด์œ 
2. ์ž๊ฐˆ์ด ์—†๋‹ค๋ฉด -> ์ž์‹ ์ด ๋ณด์œ ํ•œ ๋ชจ๋“  ์ž๊ฐˆ์„ ๋‹ค์‹œ ๋„ฃ๊ธฐ
=> ๋งˆ์ง€๋ง‰ ์ž๊ฐˆ 1๊ฐœ๋ฅผ ๊บผ๋‚ผ ๋•Œ, ๋‹ค๋ฅธ ๋ชจ๋“  ํ›„๋ณด์ž์˜ ์†์— ์ž๊ฐˆ์ด ํ•˜๋‚˜๋„ ์—†๋‹ค๋ฉด ์Šน์ž๊ฐ€ ๋จ  

 

 

my solution (Java)

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class _4962_ { // Next Mayor

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;

		String str = "";
		while (!(str = bf.readLine()).equals("0 0")) {
			st = new StringTokenizer(str);

			int n = Integer.parseInt(st.nextToken());
			int p = Integer.parseInt(st.nextToken());

			int arr[] = new int[n];
			int result=-1;

			while (true) {
				for (int i = 0; i < n; i++) {
					boolean check = false;
					if (p > 0) {
						arr[i] += 1;
						p -= 1;
						if (p == 0) {
							for (int j = 0; j < n; j++) {
								if (i != j && arr[j] != 0) {
									check = true;
									break;
								}
							}
							if (!check) {
								result=i;
								break;
							}
						}
					} else {
						p += arr[i];
						arr[i] = 0;
					}
				}
				if(result!=-1) {
					break;
				}
			}
			bw.write(result+"\n");
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
str : ์ž…๋ ฅ๊ฐ’
n, p : ํ›„๋ณด์ž ์ˆ˜, ์ž๊ฐˆ ์ˆ˜
arr : ๊ฐ ํ›„๋ณด์ž๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ž๊ฐˆ ์ˆ˜
result : ์Šน์ž
check : ์Šน๋ฆฌ ์—ฌ๋ถ€ 

 

"0 0"์ด ์ž…๋ ฅ๋˜๊ธฐ ์ „๊นŒ์ง€ ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

1) ํ›„๋ณด์ž ์ˆ˜์™€ ์ž๊ฐˆ ์ˆ˜ ์ž…๋ ฅ

2) ์Šน์ž๊ฐ€ ํŒ๋ณ„๋˜๊ธฐ ์ „๊นŒ์ง€ ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

2-1) n๋ช…์ด ๋Œ์•„๊ฐ€๋ฉฐ ์ž๊ฐˆ์ด ๋‚จ์•„์žˆ๋‹ค๋ฉด ์ž๊ฐˆ์„ ๊ฐ€์ ธ๊ฐ„๋‹ค. ์ด๋•Œ, ๋งˆ์ง€๋ง‰ ์ž๊ฐˆ์ด๋ผ๋ฉด ๋‹ค๋ฅธ ํ›„๋ณด์ž๋ฅผ ๋ณด๊ณ  ์ž๊ฐˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ํŒ๋ณ„ํ•œ๋‹ค. ๋‹ค๋ฅธ ํ›„๋ณด์ž๋“ค์ด ํ•œ ๋ช…๋„ ์ž๊ฐˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋ฉด ์Šน์ž์ด๋ฏ€๋กœ ์ข…๋ฃŒํ•œ๋‹ค. 

2-2) ์ž๊ฐˆ์ด ๋‚จ์•„์žˆ์ง€ ์•Š๋‹ค๋ฉด ์ž์‹ ์ด ๋ณด์œ ํ•œ ๋ชจ๋“  ์ž๊ฐˆ์„ ๋„ฃ๋Š”๋‹ค.

 

์ตœ์ข… ์Šน์ž๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. 



 

'๐ŸŒžAlgorithm > ๐Ÿ”ฅBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Baekjoon] 7863_Very Simple Problem  (0) 2025.10.01
[Baekjoon] 20680_Birds Rituals  (0) 2025.09.29
[Baekjoon] 18206_Soft Passwords  (0) 2025.09.26
[Baekjoon] 8978_VLAK  (0) 2025.09.25
[Baekjoon] 31023_Hit Song  (0) 2025.09.24