๊ตฌ๋ฆ„ํ†ค ์ฑŒ๋ฆฐ์ง€ 2์ฃผ ์ฐจ ํ•™์Šต ์ผ๊ธฐ - 2
ย - Last update: 2023-08-22

๊ตฌ๋ฆ„ํ†ค ์ฑŒ๋ฆฐ์ง€๋ž€?

๊ตฌ๋ฆ„ ์ด๋ผ๋Š” ๊ณณ์—์„œ ๋ฌธ์ œ ํ’€์ด ์ฑŒ๋ฆฐ์ง€(๊ตฌ๋ฆ„ํ†ค ์ฑŒ๋ฆฐ์ง€)๋ฅผ ํ•œ๋‹ค๊ณ  ํ•ด์„œ ์ฐธ์—ฌ ์ค‘์ด๋‹ค. ์ด๋ฒคํŠธ ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ฌธ์ œ๊ฐ€ ๊พธ์ค€์ด ์˜ฌ๋ผ์˜ค๋ฉฐ, ์ฃผ์— 2ํšŒ์”ฉ (ํ˜น์€ ๊ทธ ์ด์ƒ) ์ฑŒ๋ฆฐ์ง€ ๋ฌธ์ œ๋“ค์— ๋Œ€ํ•ด ํ’€์ด๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ๋“ค์„ ํ’€์ดํ•ด๋ณด๊ณ , ํ›„๊ธฐ๋ฅผ ๋‚จ๊ฒจ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

๋ฌธ์ œ ํ’€์ด

ํ’€์ด ์ ‘๊ทผ

PS๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ๋†’์€ ํ™•๋ฅ ๋กœ ๋งˆ์ฃผ์น˜๊ฒŒ ๋˜๋Š” ์ „ํ˜•์ ์ธ 2์ฐจ์› ๋งต ํƒ์ƒ‰ ๋ฌธ์ œ. ๋ณดํ†ต ์ด๋Ÿฐ ์œ ํ˜•์€ dx, dy๋ฅผ ๋„์ž…ํ•ด์„œ ๊ฐ ๋ฐฉํ–ฅ์„ ํŽธํ•˜๊ฒŒ ์ˆœํšŒํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์ข‹์€ ํ…Œํฌ๋‹‰์ด ํ•˜๋‚˜ ์žˆ๋Š”๋ฐ ๊ฒฝ๊ณ„์„ ์— ์—ฌ์œ ๋ฅผ ๋‘๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด [1,N][1, N] ๊ตฌ๊ฐ„์˜ ๋ฐฐ์—ด์„ ์“ฐ๋„๋ก ํ•˜๋ฉด 00๊ณผ N+1N+1์ด ๊ฒฝ๊ณ„์„ ์ด ๋˜๊ณ , ์ด ๊ฒฝ๊ณ„์„ ์—๋Š” 00์„ ์ฑ„์›Œ๋‘๋ฉด ๋‹ต์— ๋ณ€ํ•จ์ด ์—†๊ณ (๋ฌธ์ œ์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜๋Š” ์žˆ๋‹ค), ํƒ์ƒ‰ํ•  ๋•Œ ๊ฒฝ๊ณ„์„  ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ๋ผ์„œ ๊ตฌํ˜„์ด ํ›จ์”ฌ ํŽธํ•ด์ง„๋‹ค.

์ด๋Ÿฌํ•œ ์ ๋งŒ ์ž˜ ์ตํžˆ๊ณ  ์žˆ๋‹ค๋ฉด ๋งค์šฐ ์‰ฝ๊ฒŒ ํ†ต๊ณผ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ์ด๋‹ค. ์ง‘๊ฐ€์„œ ๊ฐ„๋งŒ์— ์ง€๋ขฐ์ฐพ๊ธฐ ํ•ด์•ผ์ง€..

์ƒ˜ํ”Œ ์ •๋‹ต ์ฝ”๋“œ

#include <stdio.h>
int dx[8] = {0, 1, 1, 1, 0, -1, -1, -1};
int dy[8] = {1, 1, 0, -1, -1, -1, 0, 1};
int map[1002][1002];
int main() {
int N, K; scanf("%d %d", &N, &K);
for(int y = 1; y <= N; ++y) {
for(int x = 1; x <= N; ++x) {
scanf("%d", &map[y][x]);
}
}
int ans = 0;
for(int y = 1; y <= N; ++y) {
for(int x = 1; x <= N; ++x) {
if (map[y][x] == 0) {
int ck = 0;
for(int k = 0; k < 8; ++k) {
if (map[y + dy[k]][x + dx[k]] == 1) ++ck;
}
if (ck == K) ++ans;
}
}
}
printf("%d\n", ans);
return 0;
}
๐Ÿท๏ธ ์ฃผ์ œ ๋ชฉ๋ก: