[SWEA] - 2805. 농작물 수확하기

jjiani·2021년 2월 23일
0

SWEA

목록 보기
13/20
post-thumbnail

swea - 문제 보기

for tc in range(1, int(input())+1):
    N = int(input())
    arr = [list(map(int, input())) for _ in range(N)]

    # N값이 다 홀수로 들어오므로 가운데 인덱스값은 항상 N을 2로 나눈 몫이다.
    mid_idx = N // 2
    total = 0
    # 행을 하나씩 아래로 움직이기
    # mid_idx기준으로 점점 줄어드는 모양이므로 반반 나눠서 생각했다.
    
    # 증가하는 부분
    for r in range(mid_idx + 1):
        i = r
        while i < r + 1:
            total += sum(arr[r][mid_idx - i:mid_idx + i + 1])
            i += 1
    # 감소하는 부분
    for r in range(mid_idx + 1, N):
        j = r
        while j < r + 1:
            total += sum(arr[r][j - mid_idx:-(j - mid_idx)])
            j += 1
    print('#{} {}'.format(tc, total))

🔑 마름모꼴을 어떻게 해야하나 고민하느라 이틀 걸렸다...!
인터넷에 찾아봐도 나처럼 푼 사람이 없어서 어쩔수 없이 혼자 고민했다,,,😭
다른분들 풀이보면 엄청 간단하던데 쉬운 문제였나요...?
나한텐 어려웠고 오래걸렸지만 내 힘으로 끝까지 풀었고 그랬기에 비슷한 문제가 또 나온다면 다시 풀 수 있지 않을까??(희망사항😋)
포인트는 인덱스가 늘어나는것과 줄어드는것을 어떻게 구현해야 하는지 빨리 캐치하는 것!
누군가가 보기엔 비효율적으로 보일 수 있어도 지금의 나로썬 저 코드가 최선이다,,,😥😥
변수를 갖고 인덱스 조절하는거는 해도해도 헷갈린다.

profile
¡Bienvenido a mi velog!🐣

0개의 댓글