SWEA 2805. 농작물 수확하기(파이썬)

비만다람쥐·2024년 5월 8일
0
post-custom-banner

문제

문제바로가기

  1. N * N 크기의 농장이 있다
  2. 농장의 크기는 항상 홀수이다
  3. 수확은 항상 농장의 크기에 딱 맞는 정사각형 마름모 형태로만 가능하다

접근하기

sol1 (N이 5일때로 가정)

  1. M = N//2 로 설정한다 -> 중간값
  2. i <= M 일때 i 가 0,1,2 증가하면 j의 범위는 (2-2)(1-3)(0-4) 가 된다 즉 (M-i)~(M+i)
  3. i > M 일때 i 가 3,4 증가하면 j의 범위는 (1-3)(2-2) 가 된다 즉 (i-M) 부터 N-(i-M) 앞까지의 범위가 된다

sol2 (N이 5일때로 가정)

1.start = end = M (M == N//2)
2.for i in range(n): 을 반복하며 start~end 값을 누적한다
3.i < M 일때 start -= 1,end += 1
4.i >= M 일때 start += 1, end -= 1

코드

T = int(input())

for t in range(1,T+1):
    N = int(input())
    arr = [list(map(int,input())) for _ in range(N)]
    M = N // 2
    answer = 0

    for i in range(N):
        if i <= M:
            for j in range(M-i,M+i+1):
                answer += arr[i][j]
        else:
            for x in range(i-M,(N-(i-M))):
                answer += arr[i][x]
    
    print(f'#{t} {answer}')
profile
개발자가 되고싶은 사람
post-custom-banner

0개의 댓글