[BOJ] 수리공 항승

Minsu Han·2023년 6월 1일
0

알고리즘연습

목록 보기
98/105

코드

import sys
# from collections import deque
input = sys.stdin.readline

N, L = map(int, input().split())
leaks = sorted(list(map(int, input().split())))
ans = 0

while leaks:
    start = leaks.pop(0)
    for i in range(start, start+L):
        if i in leaks:
            leaks.remove(i)
    ans += 1

print(ans)

결과

image


풀이 방법

  • 길이 L의 테이프는 L개의 연속된(간격이 1인) 구멍을 막을 수 있다.
  • 먼저 구멍의 좌표들을 leaks 배열에 저장하고 오름차순 정렬한다.
  • 첫 구멍을 시작으로 길의 L의 테이프로 막히는 구멍들을 leaks에서 제거하고, 새로운 테이프를 사용할 때마다 ans 값을 1씩 증가시킨다.

profile
기록하기

0개의 댓글