Baek_1992

원성혁·2022년 10월 3일
0

algorithm

목록 보기
2/21
post-thumbnail

백준 1992 쿼드트리

class 4로 빨리 올라가고 싶어서 그냥 도전해봤다. 솔직히 요즘 알고리즘 괜찮게 하는것 같고 오늘 개천절 쉬는날 문제 풀 여유 있어서 풀어봤다....
근데 다 풀어놓고 인자값 실수를 해서 개고생해버렸다...

import sys
input = sys.stdin.readline

cnt = int(input())

matrix = [list(map(int,input().rstrip())) for _ in range(cnt)]
def dq(x,y,n):
    ans = 0
    for i in range(x,x+n):
        for j in range(y,y+n):
            ans+=matrix[i][j]
    if ans == n*n:
        return '1'
    elif ans == 0:
        return '0'
    else:
        nn = n//2
        return '('+ dq(x,y,nn) +dq(x,y+nn,nn)+dq(x+nn,y,nn)+dq(x+nn,y+nn,nn)+')'
print(dq(0,0,cnt))

이러고 사실 밑에 최초 함수호출의 cnt 부분에 8 써놓고 예제코드 맞는데 왜 안되지? 이러면서 개고생했다.....
다른 사람들 코드 보고 내께 왜 안되는지 엄청 뜯어봤는데 아무리 봐도 로직 비슷비슷하고 내가 틀렸을 리가 없는데.... 개고생해버렸다ㅠㅠㅠ
나중에 8 써놓은거 보고 개열받네... 이거 엄청 돌려보느라 내 python 정확도 떨어졌다ㅠ
솔직히 예제코드 몇개 더있었으면 안했을 실수였을꺼 같긴 한데ㅠ 어지간히 내 시야는 좁다.

문제는 간단했다.
devide and conquer 문제고 제귀를 기본으로 한다.
다들 print로 바로 출력 방식을 쓰거나 리스트에 어펜드 하던데 나는 그냥 return 했다. 이건 찾아보니 나만 한듯ㅎㅎ
암튼 이거때문에 문제 다풀어놓고 뻘짓하느라 고생했다... 앞으로 파라미터 넣을때 실수 안하겠지?

profile
AI개발자를 향해 전진중

0개의 댓글