๋ฌธ์ (์ถ์ฒ: 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 |