๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 6107_Plumbing the Pond

๋ฟŒ์•ผ._. 2026. 4. 23. 14:56
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/6107)

< Plumbing the Pond >

 

๋ฌธ์ œ ํ’€์ด 

 

๋ชจ๋“  ์นธ์„ ํƒ์ƒ‰ํ•˜๋ฉฐ ์ธ์ ‘ํ•œ ์นธ์— ํ˜„์žฌ ์นธ๊ณผ ๋˜‘๊ฐ™์€ ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ์ €์žฅํ•œ๋‹ค. ๊ทธ ๋’ค ์ €์žฅํ•œ ๊ฐ’๋“ค ์ค‘ ์ตœ๋Œ“๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค. 

 

my solution (Java)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.StringTokenizer;

public class _6107_ { // Plumbing the Pond

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

		int r = Integer.parseInt(st.nextToken());
		int c = Integer.parseInt(st.nextToken());

		int arr[][] = new int[r][c];

		for (int i = 0; i < r; i++) {
			st = new StringTokenizer(bf.readLine());
			for (int j = 0; j < c; j++) {
				arr[i][j] = Integer.parseInt(st.nextToken());
			}
		}

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

		HashSet<Integer> set = new HashSet<>();

		for (int i = 0; i < r; i++) {
			for (int j = 0; j < c; j++) {
				if (arr[i][j] == 0) {
					continue;
				}
				for (int k = 0; k < 8; k++) {
					int x = i + dx[k];
					int y = j + dy[k];
					if (x >= 0 && x < r && y >= 0 && y < c) {
						if (arr[i][j] == arr[x][y]) {
							set.add(arr[i][j]);
						}
					}
				}
			}
		}
		ArrayList<Integer> list = new ArrayList<>(set);
		Collections.sort(list, Collections.reverseOrder());
		System.out.println(list.get(0));
	}
}
๋ณ€์ˆ˜)
r, c : ๊ฒฉ์ž ํฌ๊ธฐ
arr : ๊นŠ์ด ๊ฐ’
dx, dy : ์ธ์ ‘ ๋ฐฉํ–ฅ

 

๊ฒฉ์ž ํฌ๊ธฐ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ๊ฒฉ์ž ํฌ๊ธฐ๋งŒํผ ์—ฐ๋ชป์˜ ๊นŠ์ด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ arr์— ์ €์žฅํ•œ๋‹ค. ๊ฐ ์นธ์„ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์ธ์ ‘ํ•œ 8๋ฐฉํ–ฅ์„ ์‚ดํŽด๋ณด๋ฉฐ ํ˜„์žฌ ์นธ๊ณผ ๊ฐ™์€ ๊ฐ’์ธ์ง€ ํ™•์ธํ•œ๋‹ค. ๊ฐ™์€ ๊ฐ’์ด๋ผ๋ฉด ์ตœ์†Œ 2๋ฒˆ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด๋ฏ€๋กœ HashSet์— ์ €์žฅํ•œ๋‹ค. HashSet์„ ArrayList๋กœ ๋ณ€ํ™˜ํ•œ ํ›„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. ์ตœ์ข… ArrayList์˜ ์ฒซ ๋ฒˆ์งธ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค. 



 

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

[programmers] ๋ฒ ์ŠคํŠธ์•จ๋ฒ”  (0) 2026.07.24
[Baekjoon] 32813_Oooh I See  (0) 2026.04.24
[Baekjoon] 6754_Bridge transport  (0) 2026.04.22
[Baekjoon] 27137_Square Designs  (0) 2026.04.21
[Baekjoon] 13382_Lab  (0) 2026.04.20