ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • section3.7 사과나무(다이아몬드)
    알고리즘 2022. 10. 27. 23:18

    현수의 농장은 N*N 격자판으로 이루어져 있으며, 각 격자 안에는 한 그루의 사과나무가 심어저 있다. N의 크기는 항상 홀수이다. 가을이 되어 사과를 수확해야 하는데 현수는 격자판 안의 사 과를 수확할 때 다이아몬드 모양의 격자판만 수확하고 나머지 격자 안의 사과는 새들을 위해서 남겨놓는다. 만약 N이 5이면 아래 그림과 같이 진한 부분의 사과를 수확한다.

    10 13 10 12 15

    12 39 30 23 11

    11 25 50 53 15

    19 27 29 37 27

    19 13 30 13 19

    현수과 수확하는 사과의 총개수를 출력하세요.

     

     

    import sys
    #sys.stdin = open("input.txt", "rt")
    n = int(input())
    list = [list(map(int, input().split())) for _ in range(n)]
    sumList = 0
    
    # 리스트의 인덱싱을 사용하면 될 것 같다
    #print(list[0][2:3])
    #print(list[1][1:4])
    #print(list[2][0:5])
    #print(list[3][1:4])
    #print(list[4][2:3])
    
    for i in range(n//2+1):
        if i == n//2:
            sumList += sum(list[i][n//2-i:n//2+1+i])
        else:
            sumList += sum(list[i][n//2-i:n//2+1+i])
            sumList += sum(list[n-1-i][n//2-i:n//2+1+i])
    print(sumList)

     

    정답

    다이아몬드 모양이라 인덱스 숫자를 이용하면 될 것 같아 인덱스와 sum을 이용해서 풀었다

     

    import sys
    sys.stdin = open("input.txt", "rt")
    n = int(input())
    a = [list(map(int, input().split())) for _ in range(n)]
    res = 0
    s = e = n//2
    for i in range(n):
        for j in range(s, e+1):
            res += a[i][j]
        if i < n//2:
            s -= 1
            e += 1
        else:
            s += 1
            e -= 1
    print(res)

     

     

     

    풀면서 계속 같은 에러가 났었다

    if i == n//2:
            sumList += sum(list[i][n//2-i:n//2+1+i])
        else:
            sumList += sum(list[i][n//2-i:n//2+1+i])
            sumList += sum(list[n-1-i][n//2-i:n//2+1+i])

    이 부분의 코드를 작성하는데

    sum += sum(list[i][n//2-i:n//2+1+i])

    sumList가 아니라 코드의 앞부분에서 sum을 초기화했기 때문에 그대로 사용했다

    그랬더니 typeerror  발생

     

    TypeError: 'int' object is not callable
    > 예약어(sum)를 변수명으로 사용했기 때문에 발생하는 오류
    비슷하게 실수할 수 있는 예약어로는 sum(), min(), max() 이런 집계함수일 것 같다
    다음부터는 실수하지 말기

     

    728x90

    '알고리즘' 카테고리의 다른 글

    section3.9 봉우리  (1) 2022.10.30
    section3.8 곳감(모래시계)  (0) 2022.10.30
    section3.6 수들의 합  (0) 2022.10.27
    section3.5 수들의 합  (0) 2022.10.26
    section3.4 두 리스트 합치기  (0) 2022.10.26
Designed by Tistory.