인프런 커뮤니티 질문&답변

patent troll님의 프로필 이미지

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

9. 봉우리

이건 왜 안되는걸까요?

22.06.13 17:18 작성

·

226

0

import sys
sys.stdin=open("input.txt", "rt")

n = int(input())
a = [list(map(int, input().split())) for _ in range(n)]
for i in a:
    i.insert(0, 0)
    i.append(0)
b = [0]*(n+2)
a.insert(0, b)
a.append(b)

dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]

def check(x, y):
    for i in range(4):
        nx = x+dx[i]
        ny = x+dy[i]
        if a[x][y] <= a[nx][ny]:
            return False
    return True

res = 0
for x in range(1, n+1):
    for y in range(1, n+1):
        if check(x, y):
            res += 1
print(res)
 
코드는 위와 같고요,
리스트 a는 잘 출력되는것으로 보아,
제가만든 check 함수의 설정에서 잘못된것 같은데, 논리상 어떤점 때문에 잘못 된 건지 모르겠습니다.

답변 1

0

깨위님의 프로필 이미지

2022. 12. 15. 07:38

저도 같은 문제상황에 도달했는데,, 뭐가 문제인지 모르겠습니다..

아마 all이 아니여서 그런 것 같은데.. 진짜 이해가 안돼요