BOJ/Python

[BOJ/백준] 22380 - 割り勘 (Python)

tjdms4327 2024. 11. 3. 13:33

문제

문제링크

n명의 사람이 총 m엔을 m/n씩 감당하기로 했다.

각 사람이 m/n보다 적은 금액을 가지고 있다면 현재 가지고 있는 돈을 모두 내고 나머지는 다음에 지불하기로 한다.

오늘 모든 총 금액을 구하라.

 

풀이

n과  m이 모두 0인 경우 입력은 종료된 것이므로 while True문에서 if로 종료 조건을 설정했다.

각 사람이 가진 금액을 리스트 형태로 저장하고 for문으로 각 요소에 접근해 

m/n(m은 n으로 나누어떨어짐)보다 크거나 같으면 m/n을, 작으면 요소 전체를 합한다.

 

코드

while True:
    n, m = map(int, input().split())
    if n+m == 0:
        break
    As = list(map(int, input().split()))

    tot=0
    for a in As:
        if a >= m//n:
            tot += m//n
        else:
            tot += a
    print(tot)