๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 4821_ํŽ˜์ด์ง€ ์„ธ๊ธฐ

๋ฟŒ์•ผ._. 2024. 7. 5. 14:08
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/4821)

< ํŽ˜์ด์ง€ ์„ธ๊ธฐ >

 

๋ฌธ์ œ ํ’€์ด 

 

์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€ ์ˆ˜๋ฅผ ์„ผ๋‹ค. ์ด๋•Œ ๋ฌธ์„œ์˜ ๋ฒ”์œ„๋ฅผ ๋„˜์–ด๊ฐ€๋Š” ๊ฒƒ์„ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

 

 my solution (Java)

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

public class _4821_ { // ํŽ˜์ด์ง€ ์„ธ๊ธฐ

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

		int n;
		while ((n = Integer.parseInt(bf.readLine())) != 0) {
			boolean print[] = new boolean[n + 1];
			int result = 0;

			String str[] = bf.readLine().split(",");
			for (int i = 0; i < str.length; i++) {
				if (!str[i].contains("-")) {
					if (Integer.parseInt(str[i]) > n) {
						continue;
					}
					if (!print[Integer.parseInt(str[i])]) {
						print[Integer.parseInt(str[i])] = true;
						result += 1;
					}
				} else {
					String num[] = str[i].split("-");
					int a = Integer.parseInt(num[0]);
					int b = Integer.parseInt(num[1]);

					if (a > b || a > n) {
						continue;
					}
					for (int j = a; j <= b; j++) {
						if (j > n) {
							break;
						}
						if (!print[j]) {
							print[j] = true;
							result += 1;
						}
					}
				}
			}
			bw.write(result + "\n");
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
n : ๋ฌธ์„œ์˜ ์ด ํŽ˜์ด์ง€ ์ˆ˜
print : ํ”„๋ฆฐํŠธ ์—ฌ๋ถ€
result : ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋Š” ํŽ˜์ด์ง€์˜ ์ˆ˜
str :์ž…๋ ฅ๋œ ์ธ์‡„ ๋ฒ”์œ„๋ฅผ ", " ๊ธฐ์ค€์œผ๋กœ ์ž๋ฅธ ๊ฒฐ๊ณผ
num : str ๊ฐ’์„ "-" ๊ธฐ์ค€์œผ๋กœ ์ž๋ฅธ ๊ฒฐ๊ณผ
a, b : num ๊ฐ’ ๋‘ ๊ฐœ

 

๋ฌธ์„œ์˜ ์ด ํŽ˜์ด์ง€ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ์ž…๋ ฅ๋œ ์ธ์‡„ ๋ฒ”์œ„๋ฅผ ", " ๊ธฐ์ค€์œผ๋กœ ์ž˜๋ผ str ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค. str ๋ฐฐ์—ด์„ ํƒ์ƒ‰ํ•˜๋ฉฐ ๋‹ค์Œ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.

 

1) ์–‘์˜ ์ •์ˆ˜ ํ•˜๋‚˜๋ผ๋ฉด ๋ฌธ์„œ์˜ ๋ฒ”์œ„ ์•ˆ์ธ์ง€ ํ™•์ธ ํ›„ ์ถœ๋ ฅ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ๋‹ค. ์•„์ง ์ถœ๋ ฅ๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ผ๋ฉด ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ ํ›„ result+1์„ ํ•ด์ค€๋‹ค.

2) ํ•˜์ดํ”ˆ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค๋ฉด ํ•˜์ดํ”ˆ์„ ๊ธฐ์ค€์œผ๋กœ ์ž˜๋ผ num ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค. ๋‘ ์–‘์˜ ์ •์ˆ˜๋ฅผ ๊ฐ๊ฐ a, b์— ์ €์žฅํ•œ๋‹ค. ์•ž์˜ ์ˆ˜์ธ a๊ฐ€ ๋’ค์˜ ์ˆ˜์ธ b๋ณด๋‹ค ํฌ๋‹ค๋ฉด ์ด ๋ฒ”์œ„๋Š” ์ธ์‡„ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋Œ์•„๊ฐ„๋‹ค. ๋˜ํ•œ, ์•ž์˜ ์ˆ˜์ธ a๊ฐ€ ๋ฌธ์„œ์˜ ์ด ํŽ˜์ด์ง€ ์ˆ˜์ธ n๋ณด๋‹ค ํฌ๋‹ค๋ฉด ์ธ์‡„ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋Œ์•„๊ฐ„๋‹ค. a๋ถ€ํ„ฐ b๊นŒ์ง€ ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•˜๋ฉฐ ๊ฐ’์ด n์ดํ•˜์ด๊ณ  ์•„์ง ์ธ์‡„ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ ํ›„ result+1์„ ํ•ด์ค€๋‹ค.

 

์ตœ์ข… result๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.