๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 10656_์‹ญ์ž๋งํ’€์ด

๋ฟŒ์•ผ._. 2024. 7. 16. 15:02
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/10656)

< ์‹ญ์ž๋งํ’€์ด >

 

๋ฌธ์ œ ํ’€์ด 

 

ํ˜„์žฌ ์นธ์ด ๋น„์–ด์žˆ๊ณ  ์™ผ์ชฝ์ด ๋ง‰ํ˜€์žˆ์œผ๋ฉฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ 2์นธ์ด ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ๋˜ํ•œ, ํ˜„์žฌ ์นธ์ด ๋น„์–ด์žˆ๊ณ  ์œ„๊ฐ€ ๋ง‰ํ˜€์žˆ์œผ๋ฉฐ ์•„๋ž˜๋กœ 2์นธ์ด ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. 

 

 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.ArrayList;
import java.util.StringTokenizer;

public class _10656_ { // ์‹ญ์ž๋งํ’€์ด

	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 = new StringTokenizer(bf.readLine());

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

		char arr[][] = new char[n][m];
		for (int i = 0; i < n; i++) {
			String str = bf.readLine();
			for (int j = 0; j < m; j++) {
				arr[i][j] = str.charAt(j);
			}
		}

		ArrayList<int[]> list = new ArrayList<>();
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				if (arr[i][j] == '#') {
					continue;
				}
				if ((j - 1 < 0 || arr[i][j - 1] == '#') && j + 1 < m && arr[i][j + 1] == '.' && j + 2 < m
						&& arr[i][j + 2] == '.') {
					list.add(new int[] { i + 1, j + 1 });
				} else if ((i - 1 < 0 || arr[i - 1][j] == '#') && i + 1 < n && arr[i + 1][j] == '.' && i + 2 < n
						&& arr[i + 2][j] == '.') {
					list.add(new int[] { i + 1, j + 1 });
				}
			}
		}
		bw.write(list.size() + "\n");
		for (int[] temp : list) {
			bw.write(temp[0] + " " + temp[1] + "\n");
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
n, m : ํ–‰, ์—ด
arr : ๊ฒฉ์ž ์ •๋ณด
list : ํžŒํŠธ๋“ค์˜ ์‹œ์ž‘ ์œ„์น˜

 

ํ–‰, ์—ด ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ๊ฒฉ์ž ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ arr์— ์ €์žฅํ•œ๋‹ค. ๊ฒฉ์ž๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉฐ ๋นˆ์นธ์ด๋ผ๋ฉด ๋‹ค์Œ ์กฐ๊ฑด์„ ํ™•์ธํ•œ๋‹ค.

 

1) ์™ผ์ชฝ์ด ๋ง‰ํ˜€์žˆ๊ฑฐ๋‚˜ ๊ฒฉ์ž ๋ฐ–์ด๊ณ  ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋‘ ์นธ์ด ๋น„์–ด์žˆ๋‹ค๋ฉด list์— ์ขŒํ‘œ ์ถ”๊ฐ€

2) ์œ„๊ฐ€ ๋ง‰ํ˜€์žˆ๊ฑฐ๋‚˜ ๊ฒฉ์ž ๋ฐ–์ด๊ณ  ์•„๋ž˜๋กœ ๋‘ ์นธ์ด ๋น„์–ด์žˆ๋‹ค๋ฉด list์— ์ขŒํ‘œ ์ถ”๊ฐ€

 

์ตœ์ข… list์˜ ํฌ๊ธฐ์™€ list์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.