๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 2891_์นด์•ฝ๊ณผ ๊ฐ•ํ’

๋ฟŒ์•ผ._. 2024. 5. 24. 14:21

Silver V

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/2891)

< ์นด์•ฝ๊ณผ ๊ฐ•ํ’ >

 

๋ฌธ์ œ ํ’€์ด 

 

์นด์•ฝ์„ ํ•˜๋‚˜ ๋” ๊ฐ€์ ธ์˜จ ํŒ€์˜ ์นด์•ฝ์ด ์†์ƒ๋˜์—ˆ๋Š”์ง€ ํŒŒ์•… ํ›„ ์†์ƒ๋˜์—ˆ๋‹ค๋ฉด ์ž์‹ ์˜ ํŒ€์— ์—ฌ๋ถ„์˜ ์นด์•ฝ์„ ์‚ฌ์šฉํ•œ๋‹ค.

๊ทธ ์ดํ›„์— ์นด์•ฝ์ด ์†์ƒ๋œ ํŒ€์˜ ๋ฐ”๋กœ ์ „, ๋‹ค์Œ ํŒ€์„ ์ˆœ์„œ๋Œ€๋กœ ์—ฌ๋ถ„์˜ ์นด์•ฝ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

 

 

 my solution (Java)

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

public class _2891_ { // ์นด์•ฝ๊ณผ ๊ฐ•ํ’

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

		int n = Integer.parseInt(st.nextToken());
		int s = Integer.parseInt(st.nextToken());
		int r = Integer.parseInt(st.nextToken());

		boolean damage[] = new boolean[n + 1];
		st = new StringTokenizer(bf.readLine());
		for (int i = 0; i < s; i++) {
			damage[Integer.parseInt(st.nextToken())] = true;
		}

		boolean[] check = new boolean[n + 1];
		st = new StringTokenizer(bf.readLine());
		for (int i = 0; i < r; i++) {
			int num = Integer.parseInt(st.nextToken());
			if (damage[num]) {
				damage[num] = false;
			} else {
				check[num] = true;
			}
		}

		int cnt = 0;
		for (int i = 1; i <= n; i++) {
			if (damage[i]) {
				if (check[i - 1]) {
					check[i - 1] = false;
					damage[i] = false;
				} else if (i<n && check[i + 1]) {
					check[i + 1] = false;
					damage[i] = false;
				} else {
					cnt += 1;
				}
			}
		}
		System.out.println(cnt);
	}

}
๋ณ€์ˆ˜)
n, s, r : ํŒ€์˜ ์ˆ˜, ์นด์•ฝ์ด ์†์ƒ๋œ ํŒ€์˜ ์ˆ˜, ์นด์•ฝ์„ ํ•˜๋‚˜ ๋” ๊ฐ€์ ธ์˜จ ํŒ€์˜ ์ˆ˜
damage : ์นด์•ฝ์ด ์†์ƒ๋œ ํŒ€ ์—ฌ๋ถ€
check : ์นด์•ฝ์„ ํ•˜๋‚˜ ๋” ๊ฐ€์ ธ์˜จ ํŒ€์˜ ์—ฌ๋ถ€
num : ์นด์•ฝ์„ ํ•˜๋‚˜ ๋” ๊ฐ€์ ธ์˜จ ํŒ€
cnt : ์ถœ๋ฐœ์„ ํ•  ์ˆ˜ ์—†๋Š” ํŒ€ ์ˆ˜

 

ํŒ€์˜ ์ˆ˜, ์นด์•ฝ์ด ์†์ƒ๋œ ํŒ€์˜ ์ˆ˜, ์นด์•ฝ์„ ํ•˜๋‚˜ ๋” ๊ฐ€์ ธ์˜จ ํŒ€์˜ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ์นด์•ฝ์ด ์†์ƒ๋œ ํŒ€์˜ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์†์ƒ ์—ฌ๋ถ€๋ฅผ true๋กœ ์ €์žฅํ•œ๋‹ค. ์นด์•ฝ์„ ํ•˜๋‚˜ ๋” ๊ฐ€์ ธ์˜จ ํŒ€์˜ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋จผ์ € ์ž์‹ ์˜ ํŒ€์˜ ์นด์•ฝ์ด ์†์ƒ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ์†์ƒ๋˜์—ˆ๋‹ค๋ฉด ์ž์‹ ์˜ ํŒ€์ด ์—ฌ๋ถ„ ์นด์•ฝ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์†์ƒ ์—ฌ๋ถ€๋ฅผ false๋กœ ์ €์žฅํ•œ๋‹ค. ์ž์‹ ์˜ ํŒ€์˜ ์นด์•ฝ์ด ์†์ƒ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์—ฌ๋ถ„ ์—ฌ๋ถ€๋ฅผ true๋กœ ์ €์žฅํ•œ๋‹ค. 

 

์ฒซ ๋ฒˆ์งธ ํŒ€๋ถ€ํ„ฐ ์†์ƒ ์—ฌ๋ถ€๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค. ๋งŒ์•ฝ ์นด์•ฝ์ด ์†์ƒ๋œ ํŒ€์ด๋ผ๋ฉด ์ž์‹ ์˜ ์ „ ํŒ€์ด ์—ฌ๋ถ„์˜ ์นด์•ฝ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ์ „ ํŒ€์ด ์—ฌ๋ถ„์˜ ์นด์•ฝ์ด ์—†๋‹ค๋ฉด ๋‹ค์Œ ํŒ€์„ ํ™•์ธํ•œ๋‹ค. ๋งŒ์•ฝ ์ „๊ณผ ๋‹ค์Œ ๋‘˜ ๋‹ค ์—ฌ๋ถ„์˜ ์นด์•ฝ์ด ์—†๋‹ค๋ฉด ์ถœ๋ฐœ์„ ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ cnt๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. 

 

์ตœ์ข… ์ถœ๋ฐœ์„ ํ•  ์ˆ˜ ์—†๋Š” ํŒ€์˜ ์ตœ์†Ÿ๊ฐ’์ธ cnt๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.