๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 21236_Comfortable Cows

๋ฟŒ์•ผ._. 2026. 2. 26. 13:47
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/21236)

< Comfortable Cows >

 

๋ฌธ์ œ ํ’€์ด 

 

์ขŒํ‘œ๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค ์ƒํ•˜์ขŒ์šฐ๋ฅผ ์‚ดํŽด๋ณด๋ฉฐ ์†Œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋‘˜ ๋‹ค ๊ฐ’์„ 1 ๋”ํ•ด์ค€๋‹ค. ์ด๋•Œ, ํƒ์ƒ‰ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์ธ์ ‘ํ•œ ๋„ค ๋ฐฉํ–ฅ ์ค‘ 3๋งˆ๋ฆฌ์— ๋‘˜๋Ÿฌ์‹ธ์ธ ์†Œ์˜ ์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

 

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 _21236_ { // Comfortable Cows

	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;

		int n = Integer.parseInt(bf.readLine());

		int arr[][] = new int[1001][1001];

		for (int i = 0; i < 1001; i++) {
			for (int j = 0; j < 1001; j++) {
				arr[i][j] = -1;
			}
		}

		int dx[] = { -1, 1, 0, 0 };
		int dy[] = { 0, 0, -1, 1 };

		int result = 0;

		for (int i = 0; i < n; i++) {
			st = new StringTokenizer(bf.readLine());

			int x = Integer.parseInt(st.nextToken());
			int y = Integer.parseInt(st.nextToken());

			arr[x][y] = 0;

			for (int j = 0; j < 4; j++) {
				int x1 = x + dx[j];
				int y1 = y + dy[j];

				if (x1 >= 0 && x1 < 1001 && y1 >= 0 && y1 < 1001) {
					if (arr[x1][y1] > -1) {
						arr[x][y] += 1;

						if (arr[x1][y1] == 3) {
							result -= 1;
						}
						arr[x1][y1] += 1;

						if (arr[x1][y1] == 3) {
							result += 1;
						}
					}
				}
			}

			if (arr[x][y] == 3) {
				result += 1;
			}

			bw.write(result + "\n");
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
n : ์ขŒํ‘œ ์ˆ˜
arr : ๊ฐ ์œ„์น˜์— ์žˆ๋Š” ์†Œ๋งˆ๋‹ค ์ธ์ ‘ํ•œ ๋ฐฉํ–ฅ์— ์žˆ๋Š” ์†Œ์˜ ์ˆ˜
dx, dy : ์ƒ, ํ•˜, ์ขŒ, ์šฐ
x, y : ์ขŒํ‘œ
x1, y1 : ์ƒ, ํ•˜, ์ขŒ, ์šฐ ์œ„์น˜
result : ์ธ์ ‘ํ•œ ๋„ค ๋ฐฉํ–ฅ ์ค‘ 3๋งˆ๋ฆฌ์— ๋‘˜๋Ÿฌ์‹ธ์ธ ์†Œ์˜ ์ˆ˜

 

์ขŒํ‘œ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ์ขŒํ‘œ์˜ ๋ฒ”์œ„๊ฐ€ 0 ์ด์ƒ 1000 ์ดํ•˜ ์ด๋ฏ€๋กœ ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜์—ฌ -1๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ์ขŒํ‘œ ์ˆ˜๋งŒํผ ์ขŒํ‘œ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋‹ค์Œ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.

 

1) ํ˜„์žฌ ์œ„์น˜ ๊ฐ’์„ 0์œผ๋กœ ์ €์žฅ

2) ์ƒํ•˜์ขŒ์šฐ๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉฐ ๋ฒ”์œ„ ์•ˆ์ด๊ณ  ์†Œ๊ฐ€ ์žˆ๋‹ค๋ฉด ํ˜„์žฌ ์œ„์น˜ +1, ํƒ์ƒ‰ ์œ„์น˜์— ์žˆ๋Š” ์†Œ๋„ ์ธ์ ‘ํ•œ ์†Œ๊ฐ€ ๋Š˜์–ด๋‚˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๊ฐ’์„ +1 ํ•œ๋‹ค. +1 ํ•˜๊ธฐ ์ „ ๊ฐ’์ด 3์ด๋ผ๋ฉด result-1, +1 ํ•œ ํ›„์— ๊ฐ’์ด 3์ด๋ผ๋ฉด result +1์„ ํ•œ๋‹ค.

3) ํ˜„์žฌ ์œ„์น˜ ๊ฐ’์ด 3์ด๋ผ๋ฉด result+1

4) result ์ถœ๋ ฅ



 

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

[Baekjoon] 6119_Cow Line  (0) 2026.02.27
[Baekjoon] 11969_Breed Counting  (0) 2026.02.24
[Baekjoon] 3022_PRASE  (0) 2026.02.23
[Baekjoon] 19622_ํšŒ์˜์‹ค ๋ฐฐ์ • 3  (0) 2026.02.12
[Baekjoon] 19621_ํšŒ์˜์‹ค ๋ฐฐ์ • 2  (0) 2026.02.11