티스토리 뷰

📚 문제

입력

  • 첫째 줄에 레벨의 수 N이 주어진다. (1 ≤ N ≤ 100) 다음 N개 줄에는 각 레벨을 클리어하면 얻는 점수가 첫 번째 레벨부터 마지막 레벨까지 순서대로 주어진다. 점수는 20,000보다 작은 양의 정수이다.

출력

  • 첫째 줄에 점수를 몇 번 감소시키면 되는지 출력한다.

입력 예시 1

3
5
5
5

출력 예시 1

3

입력 예시 2

4
5
3
7
5

출력 예시 2

6

🧑🏻‍💻 풀이 과정

  • 뒤에서부터 시작해서 이전 값이 뒤의 값보다 크거나 같다면 while문으로 반복하며, 이전 값을 1씩 감소시키며, 카운트를 증가하자.
  • 5 5 5 -> 5 4 5 -> 3 4 5
n = int(input())
arr = [int(input()) for _ in range(n)]

cnt = 0
for idx in range(len(arr) - 1, 0, -1):
    if arr[idx] <= arr[idx - 1]:
        while arr[idx] <= arr[idx - 1]:
            arr[idx - 1] -= 1
            cnt += 1

print(cnt)
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함