본문 바로가기

알고리즘/python

[python/파이썬] 백준 1449 수리공 항승

반응형

[문제 출처]

https://www.acmicpc.net/problem/1449

 

1449번: 수리공 항승

첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나

www.acmicpc.net

 

 

[소스 코드]

 

물이 새는 곳의 위치를 리스트로 입력받고 오름차순으로 정렬한다.

가장 왼쪽에 있는 구멍부터 테이프를 붙히기 시작해서 for문으로 어는 구멍까지 막을 수 있는지 체크한다.

 

현재 새는 곳인 pipe[i]가 테이프가 시작되는 부분 pipe[now]로부터 l - 1 이내에 있다면 새로운 테이프를 뜯지 않아도 된다.

만일 이보다 멀리있을 경우 다른 테이프가 필요하며 테이프 개수가 증가한다.

import sys
input = sys.stdin.readline

n, l = map(int, input().split())

pipe = list(map(int, input().split()))

pipe.sort()

count = 1
now = 0
for i in range(1,n):
    if pipe[i] <= pipe[now] + l-1:
        continue
    else:
        count += 1
        now = i
print(count)

 

반응형