본문 바로가기

개발/알고리즘

BOJ (1449) - 수리공 항승 Python

아이디어

  1. 시작점 = st 와 loc의 현재 값 = now 놓는다.
  2. 처음 : 현재 값 now 이므로 now +L -1 만큼은 수리가 가능하다. 따라서 현재 값을 now +L -1 로 바꾼다. cnt+1
  3. 이후: 만약 현재값이 시작점보다 크거나 같다면 새로운 테이프의 범위이므로 현재값을 now +L -1로 다시 바꿔준다. cnt +1 
  4. 반복

소스코드

# https://www.acmicpc.net/problem/1449
N, L = map(int,input().split())
loc = list(map(int,input().split()))

st = 0
cnt = 0

for now in loc:
    if st < now:
        st = now+L-1
        cnt+=1

print(cnt)