본문 바로가기
Algorithm Problem Solving/BaekJoon

[BaekJoon] 백준 3060 욕심쟁이 돼지 (Python / 파이썬)

by ʚ⇜❅🎕̈❄⇝ɞ 2021. 8. 27.
728x90
반응형

BaekJoon 백준 3060 욕심쟁이 돼지 문제는 돼지들은 전 날 자신의 양쪽과 맞은편에 앉았던 돼지가 먹었던 양을 기억하고 있고, 그만큼의 양을 추가하여 식사를 하기를 원한다. 돼지들의 요구를 들어줄 수 없게 되는 날을 구하는 문제이다. 난이도는 Bronze 1이다.

 

BaekJoon 3060 욕심쟁이 돼지 문제 정보

출처

- https://www.acmicpc.net/problem/3060

알고리즘 분류

- 수학

난이도

- 브론즈 1 / Bronze 1

 

욕심쟁이 돼지 문제 요약

  • 돼지는 원형 식탁에 앉아서 식사를 한다. 현수의 돼지들은 기억력이 뛰어나기 때문에 전 날 자신의 양쪽과 맞은편에 앉았던 돼지가 먹었던 양을 기억하고 있다. 또, 욕심도 많기 때문에, 그만큼의 양을 추가하여 식사를 하기를 원한다.
  • 마음씩 좋은 농부 박현수는 이런 돼지의 요구를 모두 들어주려고 한다. 매일 현수의 집에 신선한 사료가 N만큼 배달된다. 사료의 유통기한은 하루이기 때문에, 남은 사료는 모두 폐기한다.
  • 첫날 돼지들이 먹었던 양이 주어졌을 때, 현수가 6마리의 돼지들의 요구를 들어줄 수 없게 되는 날이 몇 번째 날인지 구하여 출력한다.
  • 배달되는 사료의 양 N (1 <=N <=500,000,000), 각 돼지가 먹는 사료의 양은 100 이하의 자연수가 주어진다.

 

문제 풀이 과정

  1. 돼지들은 전 날 자신의 양쪽과 맞은편에 앉았던 돼지가 먹었던 양을 추가하여 식사하는데, 6마리 돼지들의 요구를 모두 들어주어 계산해 보면, 전 날 모든 사료의 양 X 4의 양을 오늘 주어야 한다.
  2. 사료의 양이 오늘 주어야 하는 배급량 보다 많을 동안 반복하여,
  3. 매일 날짜를 카운트하고 사료량을 4배로 늘린다.
  4. 사료의 양이 모자라게 되면 그날이 몇 번째 날인지 출력한다.

 

코드 및 설명
for _ in range(int(input())):
    N = int(input())
    food = sum(list(map(int, input().split())))
    day = 1
    while N >= food:
        day += 1
        food *= 4
    print(day)

BaekJoon 백준 3060 욕심쟁이 돼지 문제를 파이썬 python으로 풀어보았다. 난이도는 Bronze 브론즈 1이다. 

728x90
반응형

댓글