알고리즘

[백준, 파이썬, 1159번] 농구 경기

hminor 2023. 12. 13. 11:41

풀이

 

  • 입력값의 첫 글자에 대한 key 값이 map에 있다면 해당 key값의 value를 ++ 해주며
  • 그 값이 5가 되었을 경우엔 state 변경과 li에 추가
  • key가 없다면 추가 후 1로 초기화
  • 이후 state가 true의 경우 li를 정렬 후 출력
  • 없다면 의도하는 문구 출력

 

import sys
input = sys.stdin.readline

N,m,M,T,R = map(int,input().split())
be_m = m
cnt = 0

if M-m >= T: # 추가 혈압이 초과 되지 않는 범위
    for _ in range(N):
        if m+T <= M: # 맥박 초과 X
            m += T
            cnt += 1
        else:
            while (m+T > M):
                cnt += 1
                if m-R >= be_m: m -= R
                else:
                    m = be_m
                    break
            m += T
            cnt += 1
    print(cnt)
else: print(-1)