ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
๋ฌธ์ ํ์ด
NxN ์ง๋๊ฐ ์ฃผ์ด์ง๊ณ ๊ฐ๊ฐ์ ์นธ์ ๋์ด๊ฐ ์ฃผ์ด์ง๋ค. ์ด ์ง๋์์ ์ง๋๊ฐ ์ ์๋ ๊ธธ์ด ๋ช ๊ฐ ์ธ์ง ์ฐพ์ ๋ฐํํ๋ ๋ฌธ์ ์ด๋ค. ์ฌ๊ธฐ์ ๊ธธ์ ์ง๋์ ํ๋์ ํ ๋๋ ์ด์ ์๋ฏธํ๋ค. ๊ธธ์ ์ง๋๊ฐ ๋ ๋์ด๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ ๊ฒฝ์ฌ๋ก๋ฅผ ์ค์นํ์ฌ ์ง๋๊ฐ ์ ์๊ฒ ๋ง๋ค ์ ์๋ค. ๋จ ๊ฒฝ์ฌ๋ก์ ๊ธธ์ด๋งํผ ๊ธธ์ด๊ฐ ํ๋ณด๋์ง ์๊ฑฐ๋, ๊ฒฝ์ฌ๋ก๋ฅผ ์ค์นํ ์ ์๋ ์์ญ ๋๋ ๋์ด์ ์ฐจ๊ฐ 2 ์ด์์ด๋ผ๋ฉด ์ค์นํ ์ ์๋ค.
์์ ์ ๋ ฅ 1์ ๊ฒฝ์ฐ ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด 3๊ฐ์ ๊ธธ์ ์ง๋๊ฐ ์ ์๋ค. ๋๋จธ์ง ๊ฒฝ์ฐ๋ค์ ๊ฒฝ์ฌ๋ก๋ฅผ ์ค์นํ ์ ์์ด ์ง๋๊ฐ ์ ์๋ค. ๊ฒฝ์ฌ๋ก ์ค์น๊ฐ ๊ฐ๋ฅํ์ง๋ฅผ ํ๋จํ๊ธฐ ์ํด์๋ ์๋์ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ํ๋จํ๋ฉด ๋๋ค.
- ํ๋์ ํ, ์ด์ ๋์ด๊ฐ ๋ชจ๋ ๊ฐ์ ๊ฒฝ์ฐ
- ํ๋์ ํ, ์ด์์ ์ด์ ์ ๋์ด์ ํ์ฌ์ ๋์ด๊ฐ ๊ฐ์ ๊ฒฝ์ฐ
- ๊ฒฝ์ฌ๋ก๊ฐ ์ค์น ๊ฐ๋ฅํ ๊ธธ์ด๋ฅผ ํ๋จํ๊ธฐ ์ํด ์นด์ดํธ
- ๊ฒฝ์ฌ ์์น: ํ๋์ ํ, ์ด์์ ํ์ฌ ๋์ด - ์ด์ ์ ๋์ด๋ 1์ธ ๊ฒฝ์ฐ
- ๊ฒฝ์ฌ๋ก๊ฐ ์ค์น๊ฐ๋ฅํ ๊ธธ์ด(์นด์ดํธ)๊ฐ ํ๋ณด๋์๋ค๋ฉด ๊ณ์ ์งํ
- ๋ถ๊ฐ๋ฅํ๋ค๋ฉด ์ค๋จ
- ๊ฒฝ์ฌ ํ๋ฝ: ํ๋์ ํ, ์ด์์ ํ์ฌ ๋์ด - ์ด์ ์ ๋์ด๊ฐ -1์ธ ๊ฒฝ์ฐ
- ๋ด๋ ค๊ฐ๋ ๊ฒฝ์ฌ๋ก์ ๊ฒฝ์ฐ, ๋ฐ๋ก ์ด์ ์ ๊ฒฝ์ฌ ํ๋ฝ์ ํ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด ์นด์ดํธ๋ฅผ -L + 1๋ก ๋ณ๊ฒฝ.
- -L + 1 ๋ถํฐ ๋ค์ ์นด์ดํธํ์ฌ ํ์ฌ ๋์ด๋ฅผ ํฌํจํ์ฌ ๊ฒฝ์ฌ๋ก๊ฐ ์ค์น๋ผ์๋์ง ํ์ธํ๊ธฐ ์ํจ
- ๋ถ๊ฐ๋ฅํ๋ค๋ฉด ์ค๋จ
- ์์ ๋ชจ๋ ๊ฒฝ์ฐ๊ฐ ์๋ ๊ฒฝ์ฐ, ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์ผ๋ฏ๋ก ์ค๋จ
- ์ฆ, ํ๋์ ํ, ์ด์ ์ค๋จํ์ง ์๊ณ ๋ชจ๋ ํ์ํ๊ณ ์นด์ดํธ๊ฐ ์์๊ฐ ์๋๋ผ๋ฉด, ์ง๋๊ฐ ์ ์๋ ๊ธธ์ ์๋ฏธํจ
์ฝ๋
from sys import stdin
from collections import Counter
def passable(graph):
answer = 0
for i in range(n):
if len(Counter(graph[i])) == 1:
answer += 1
continue
cur_height = graph[i][0]
cnt = 1
for j in range(1, n):
# ์ด์ ๋์ด์ ํ์ฌ ๋์ด๊ฐ ๊ฐ์ผ๋ฉด
if graph[i][j] == cur_height:
cnt += 1
# ์ด์ ๋์ด์ ํ์ฌ ๋์ด๊ฐ ์ฐจ๊ฐ +1
elif graph[i][j] - cur_height == 1:
if cnt >= l:
cnt = 1
else:
break
# ์ด์ ๋์ด์ ํ์ฌ ๋์ด์ ์ฐจ๊ฐ -1
elif graph[i][j] - cur_height == -1:
if cnt >= 0:
cnt = -l + 1
else:
break
else:
break
# ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ํต๊ณผํ ๊ฒฝ์ฐ, ํ์ฌ ๋์ด๋ฅผ ๋ณ๊ฒฝ
cur_height = graph[i][j]
else:
answer += 1 if cnt >= 0 else 0
return answer
if __name__ == '__main__':
n, l = map(int, stdin.readline().split())
horizontal = [list(map(int, stdin.readline().split())) for _ in range(n)]
vertical = list(zip(*horizontal))
print(passable(horizontal) + passable(vertical))
๊ฐ๋ก, ์ธ๋ก์ ๋ฐ๋ผ ๋ณ๋๋ก ์ฒ๋ฆฌํ๊ธฐ ๊ท์ฐฎ์์, ์ฒ์์ ์ ๋ ฅ๋๋ ๊ฐ์ `zip`์ ํ์ฉํ์ฌ ํ์ด์ ์ ์น์์ผฐ๋ค.๐
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 14891 ํฑ๋๋ฐํด (0) | 2020.09.23 |
---|---|
๋ฐฑ์ค: 14499 ์ฃผ์ฌ์ ๊ตด๋ฆฌ๊ธฐ (0) | 2020.09.23 |
๋ฐฑ์ค: 3190 ๋ฑ (0) | 2020.09.21 |
๋ฐฑ์ค: 4811 ์์ฝ (0) | 2020.09.19 |
๋ฐฑ์ค: 17142 ์ฐ๊ตฌ์ 3 (0) | 2020.09.17 |