[백준] 3060번 욕심쟁이 돼지

거북이·2023년 9월 19일
0

백준[실버5]

목록 보기
114/114
post-thumbnail

💡문제접근

  • (첫 날 자신이 먹었던 사료의 양 + 첫 날 양 옆의 돼지가 먹었던 사료의 양 + 첫 날 맞은편의 돼지가 먹었던 사료의 양)의 결과를 하루에 배급받는 사료의 양 N에서 빼면서 0 미만의 값이 나오는 시점에 무한루프를 종료시키고 돼지들의 요구를 들어줄 수 없는 날을 출력한다.

💡테스트케이스

입력
21
1 2 3 4 5 6

출력
2

첫 날 돼지들이 먹는 사료의 총합 : 1 + 2 + 3 + 4 + 5 + 6 = 21
둘째 날 돼지들이 먹는 사료의 총합 : 84

  • 1번 돼지 : 1 + 2 + 6 + 4 = 13
  • 2번 돼지 : 1 + 2 + 3 + 5 = 11
  • 3번 돼지 : 2 + 4 + 6 + 3 = 15
  • 4번 돼지 : 3 + 5 + 4 + 1 = 13
  • 5번 돼지 : 4 + 6 + 5 + 2 = 17
  • 6번 돼지 : 5 + 1 + 6 + 3 = 15

따라서 그 다음 날에 돼지들이 먹는 사료의 총합은 그 전날에 먹었던 사료의 총합의 4배가 된다는 것을 알 수 있다.

💡코드(메모리 : 31256KB, 시간 : 40ms)

import sys
input = sys.stdin.readline

T = int(input())
for _ in range(T):
    day = 1
    N = int(input())
    food = sum(list(map(int, input().strip().split())))
    while N - food >= 0:
        food *= 4
        day += 1
    print(day)

💡소요시간 : 24m

0개의 댓글