PS/백준

[Python] 1449번 수리공 항승

s_omi 2024. 8. 24. 14:35

✏️ 문제

 

문제 파악

이전에 붙인 테이프의 길이가

  1. 다음 위치까지 사용할 수 있는 지 (테이프 개수 추가 x)
  2. 다음 위치까지 테이프 길이가 되지 않아 새로 테이프를 붙여야 하는 지 (테이프 개수 추가 o)

조건을 잘 세워 코드를 짜야하는 문제이다.

 

알고리즘

  • 그리디 알고리즘
  • 정렬

 

 

코드

n, l = map(int, input().split())
position = list(map(int, input().split()))
position.sort()

start = position[0]
count = 1

for i in position[1:]:
  if (i + 0.5) - (start - 0.5) <= l: # 테이프 길이 내에 위치가 있으면 이전에 썼던 테이프 계속 사용 
    continue
  else:       # 새 테이프 사용 
    start = i # 오름차순 정렬로 다음 위치는 새로 붙인 테이프로 사용하면 되기 때문에 기준 변경
    count += 1

print(count)

 

 

'PS > 백준' 카테고리의 다른 글

[Python] 13417번 카드 문자열  (0) 2024.08.25
[Python] 6550번 부분 문자열  (0) 2024.08.25
[Python] 1343번 폴리오미노  (0) 2024.08.24
[Python] 2468번 안전 영역  (0) 2024.08.21
[Python] 20551번 Sort 마스터 배지훈의 후계자  (0) 2024.08.21