๊ตฌ๋ฆ
์ด๋ผ๋ ๊ณณ์์ ๋ฌธ์ ํ์ด ์ฑ๋ฆฐ์ง(๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง)๋ฅผ ํ๋ค๊ณ ํด์ ์ฐธ์ฌ ์ค์ด๋ค. ์ด๋ฒคํธ ๊ธฐ๊ฐ ๋์ ๋ฌธ์ ๊ฐ ๊พธ์ค์ด ์ฌ๋ผ์ค๋ฉฐ, ์ฃผ์ 2ํ์ฉ (ํน์ ๊ทธ ์ด์) ์ฑ๋ฆฐ์ง ๋ฌธ์ ๋ค์ ๋ํด ํ์ด๊ฐ ๊ฐ๋ฅํ ๋ฌธ์ ๋ค์ ํ์ดํด๋ณด๊ณ , ํ๊ธฐ๋ฅผ ๋จ๊ฒจ๋ณด๋ ค๊ณ ํ๋ค.
PS
๋ฅผ ํ๋ค๋ณด๋ฉด ๋์ ํ๋ฅ ๋ก ๋ง์ฃผ์น๊ฒ ๋๋ ์ ํ์ ์ธ 2์ฐจ์ ๋งต ํ์ ๋ฌธ์ . ๋ณดํต ์ด๋ฐ ์ ํ์ dx
, dy
๋ฅผ ๋์
ํด์ ๊ฐ ๋ฐฉํฅ์ ํธํ๊ฒ ์ํํ๋ค. ๊ทธ๋ฆฌ๊ณ , ์ข์ ํ
ํฌ๋์ด ํ๋ ์๋๋ฐ ๊ฒฝ๊ณ์ ์ ์ฌ์ ๋ฅผ ๋๋ผ๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด ๊ตฌ๊ฐ์ ๋ฐฐ์ด์ ์ฐ๋๋ก ํ๋ฉด ๊ณผ ์ด ๊ฒฝ๊ณ์ ์ด ๋๊ณ , ์ด ๊ฒฝ๊ณ์ ์๋ ์ ์ฑ์๋๋ฉด ๋ต์ ๋ณํจ์ด ์๊ณ (๋ฌธ์ ์ ๋ฐ๋ผ ๋ค๋ฅผ ์๋ ์๋ค), ํ์ํ ๋ ๊ฒฝ๊ณ์ ์์ธ์ฒ๋ฆฌ๋ฅผ ํ์ง ์์๋ ๋ผ์ ๊ตฌํ์ด ํจ์ฌ ํธํด์ง๋ค.
์ด๋ฌํ ์ ๋ง ์ ์ตํ๊ณ ์๋ค๋ฉด ๋งค์ฐ ์ฝ๊ฒ ํต๊ณผ ๊ฐ๋ฅํ ๋ฌธ์ ์ด๋ค. ์ง๊ฐ์ ๊ฐ๋ง์ ์ง๋ขฐ์ฐพ๊ธฐ ํด์ผ์ง..
#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;}