티스토리 뷰

📚 문제

입력

출력

입력 예시 1

4 2
1 2 2 3

출력 예시 1

4 3

입력 예시 2

2 1
5 5

출력 예시 2

0 0

🧑🏻‍💻 풀이 과정

  • 입력받은 초콜릿 개수를 오름차순 정렬하자.
  • 반복하면서 현재 초콜릿 개수가 이전 초콜릿 개수와 같거나 크고, 가장 작은 초코릿 개수보다 크다는 조건이 만족된다면
  • 현재 초콜릿 개수가 이전 초콜릿 개수와 같아질 때 까지 줄여주자.
  • while문이 끝나면 day를 1 증가시켜주자.
def take_away_chocolate(chocolate):
    day = 0
    cnt = 0
    min_chocolate_cnt = min(chocolate)
    for i in range(1, len(chocolate)):
        # 현재 초콜릿 개수가 이전 초콜릿 개수와 같거나 크고, 가장 작은 초코릿 개수보다 크다면..
        if chocolate[i - 1] <= chocolate[i] and min_chocolate_cnt < chocolate[i]:
            # 현재 초콜릿 개수가 이전 초콜릿 개수와 같아질 때 까지 줄여주자.
            while chocolate[i] > chocolate[i - 1]:
                chocolate[i] -= 1
                cnt += 1
            day += 1

    print(cnt, day)


n, k = map(int, input().split())
arr = list(map(int, input().rstrip().split()))
take_away_chocolate(sorted(arr))
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함