SWEA 4615. ์ฌ๋ฏธ์๋ ์ค์ ๋ก ๊ฒ์
์๋ฎฌ๋ ์ด์ ์์ 8๋ฐฉํฅ์ผ๋ก ํ์ํ๋ ๊ฒฝ์ฐ์ ๊ฐ๋จํ ์๋ฎฌ๋ ์ด์ ์ ํ์ ์ฐ์ตํด๋ณผ ์ ์๋ ๋ฌธ์ ์ด๋ค.
๋์น ์
1. ๋ชจ๋ ์นธ์ด ๊ฒ์ ๋, ํฐ์๋ ๋ ๊ฐ์ง๋ก ์ฑ์์ง๋ ๊ฒ์ด ์๋๋ค. (0,1,2 ๋ผ๋ ๊ฒฝ์ฐ๊ฐ ์์)
๋ฐ๋ผ์, ๋์ ๊ฐ์๋ฅผ ์
๋ if ๊ฒ์ -> ๊ฒ์ ++ ์ else -> ํฐ์++ ๊ฐ ์๋ if ์ else if ๊ฐ ๋์ด์ผ ํ๋ค.
=> ์ํฉ์ ์ฃผ์ด์ง ์ ์๋ ๊ฒฝ์ฐ์ ์ ๋์น์ง ๋ง๊ธฐ
2. change ํจ์์์
๋ฐ๋ก ๋ค์ ์นธ์ ๊ฐ๋ง ๋ณด๊ณ ์์ ๋ณ๊ฒฝํ ์ ์์ง ์์.
๊ทธ ๋๋จธ์ ์นธ๋ค๊น์ง ๋ณด๊ณ ๋์์ผ ์ด๋๊น์ง ์์ ๋ณ๊ฒฝํ ์ ์๋์ง ์ ์ ์์!! โญโญโญโญโญ
์ฆ, ์กฐ๊ฑด์ ๋๋จธ์ ์นธ๋ค์๊ฒ ๊ฑธ์ด์ผ๊ฒ ์ง...
=> ๋๋จธ์ ์นธ๋ค์ ๋ณด๋ฉด์ (1) ๊ฐ์ ์์ธ์ง ํ์ธ (if๋ฌธ) (2) ์ด๋๊น์ง์ธ์ง ๋ฒ์ ์ฒดํฌ (scope)
์์ฑํ ์ฝ๋
import java.io.*;
import java.util.*;
// SWEA_์ค์
๋ก ๊ฒ์ author Ryujy
public class Solution {
static int N, M;
static int[][] map;
static int[] dr = { -1, 1, 0, 0, -1, -1, 1, 1 }; // ์ํ์ข์ฐ ์ผ์ ์ค์ ์ผ์ ์ค์
static int[] dc = { 0, 0, -1, 1, -1, 1, -1, 1 };
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int T = Integer.parseInt(br.readLine());
for (int tc = 1; tc < T + 1; tc++) {
st = new StringTokenizer(br.readLine().trim());
N = Integer.parseInt(st.nextToken()); // ํ ๋ณ์ ๊ธธ์ด 4,6,8
M = Integer.parseInt(st.nextToken()); // ํ๋ ์ด์ด๊ฐ ๋์ ๋๋ ํ์
map = new int[N][N];
// ์์ ์ธํ
int sw = N / 2 - 1;
int sb = N / 2;
map[sw][sw] = map[sb][sb] = 2;
map[sw][sb] = map[sb][sw] = 1;
for (int i = 0; i < M; i++) { // ๋ ๋๊ธฐ ์
๋ ฅ
st = new StringTokenizer(br.readLine());
int c = Integer.parseInt(st.nextToken()) - 1;
int r = Integer.parseInt(st.nextToken()) - 1;
int color = Integer.parseInt(st.nextToken()); // 1 -ํ, 2 -๋ฐฑ
map[r][c] = color; // ๋ ๋๊ธฐ
change(r, c, color); // 8๋ฐฉํฅ์ผ๋ก ์ ๋ณ๊ฒฝํ ๋ ์ฐพ๊ธฐ
} // ๋ ๋๊ธฐ ์
๋ ฅ ๋
int w = 0;
int b = 0;
for (int x = 0; x < N; x++) {
for (int y = 0; y < N; y++) {
if (map[x][y] == 1)
b++;
else if (map[x][y] == 2) {
w++;
}
}
}
System.out.println("#" + tc + " " + b + " " + w);
} // tc end
}
private static void change(int r, int c, int color) {
// ๊ฐ๋ก, ์ธ๋ก๋ ์ํ์ข์ฐ๋ก ๋ ์นธ ๋๋จธ ๋ณด๊ณ ํ ์นธ ๋๋จธ ์์น // ๋๊ฐ์ ์? ๋ง์ฐฌ๊ฐ์ง
for (int d = 0; d < 8; d++) { // ์ํ์ข์ฐ ๋๊ฐ์ -> 8๋ฐฉ์ ํ์
int scope = 1;
while (true) {
int sr = r + dr[d]*scope;
int sc = c + dc[d]*scope;
if (sr < 0 || sr > N - 1 || sc < 0 || sc > N - 1) { // ๋ฒฝ ๋ง๋๋ฉด ๋
break;
}
if (map[sr][sc] == 0) { // ๊ฑด๋ํธ์ ๊ฐ์ ์ ์์ผ๋ฉด ๋
break;
}
if (map[sr][sc] == color) { // ์ค ๊ฐ์ ์ ์ฐพ์
for (int s=1; s<scope; s++) {
int tr = r + dr[d]*s;
int tc = c + dc[d]*s;
map[tr][tc] = color;
}
break;
}
scope++;
}
}
}
}
์กฐ๊ฑด๋ฌธ ์ ์ฉํ๋ ๊ฒ์ด ์์ง ๋ถ์กฑํ ๊ฒ ๊ฐ๋ค. ์ฐ์ต ํ์ํ์!! ๐ฅฒ
์๊ณ ๋ฆฌ์ฆ ์ค๋๋ง์ ํ๋ ค๋ ์ง์ง.. ํ๊ธฐ์ซ๋ค.. ์ธ์ ์ฏค ์ฌ๋ฏธ๊ฐ ๋ถ์๋ผ๋ ใ
๊ทธ๋๋ ์ด๋กํด... ํด์ผ์ง.......................
'์๋ฃ๊ตฌ์กฐ, ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฌธ์ ํ์ด] ๋ฐฑ์ค 5427 ๋ถ (1) | 2025.02.14 |
---|---|
[๋ฌธ์ ํ์ด] ๋ฐฑ์ค 1697 ์จ๋ฐ๊ผญ์ง (1) | 2025.02.13 |
[๋ฌธ์ ํ์ด] ํ๋ณตํ ์์ด์ ๊ฐ์ (feat. ์ฝ๋ํธ๋ฆฌ ์กฐ๋ณ๊ณผ์ : 4์ฃผ์ฐจ) (3) | 2024.08.11 |
[์ด๋ก ] ๋ฐฐ์ด (feat. ์ฝ๋ํธ๋ฆฌ ์กฐ๋ณ๊ณผ์ : 3์ฃผ์ฐจ) (1) | 2024.08.04 |
[์ด๋ก ] ๊ณต๊ฐ๋ณต์ก๋ (feat. ์ฝ๋ํธ๋ฆฌ ์กฐ๋ณ๊ณผ์ : 1์ฃผ์ฐจ) (0) | 2024.07.19 |