[백준] 9465번 스티커

거북이·2023년 2월 4일
0

백준[실버1]

목록 보기
27/67
post-thumbnail

💡문제접근

  • 지그재그로 스티커를 택하는 것이 무조건 최대가 되진 않는다. 이 부분을 명심하자.

💡코너케이스

입력

1
1
1

출력

1

  • n = 1인 경우 IndexError가 출력되어 통과되지 못한 것이었다. 위의 경우를 해결하기 위해서 for문 안에 1인 경우의 케이스의 결과를 정해주어 코드가 동작될 수 있도록 처리했더니 AC를 받았다.

💡코드(메모리 : 41008KB, 시간 : 748ms)

import sys
input = sys.stdin.readline

T = int(input().strip())
for _ in range(T):
    card_arr = []
    n = int(input().strip())
    for _ in range(2):
        card_arr.append(list(map(int, input().strip().split())))

    for i in range(1, n):
        if i == 1:
            card_arr[1][1] += card_arr[0][0]
            card_arr[0][1] += card_arr[1][0]
        else:
            card_arr[0][i] += max(card_arr[1][i - 1], card_arr[1][i - 2])
            card_arr[1][i] += max(card_arr[0][i - 1], card_arr[0][i - 2])
    print(max(card_arr[0][n - 1], card_arr[1][n - 1]))

💡소요시간 : 17m

0개의 댓글