[Baekjoon] 1449 수리공 항승 python

sorzzzzy·2021년 8월 14일
0

Baekjoon Algorithm

목록 보기
37/46
post-thumbnail

🏷 문제



💡 코드

from sys import stdin

N, L = map(int, stdin.readline().split())
pipe_list= list(map(int, stdin.readline().split()))

# 오름차순 정렬
pipe_list.sort() 

res = 1

# 테이프를 붙일 수 있는 지점
length = pipe_list[0] + L - 0.5 

for pipe in pipe_list:
    # (현재값 + 테이프 길이 + 0.5(간격 필요)) 가 그 다음 값보다 작거나 같다면
    # 한 테이프로 이어 붙일 수 있다는 소리이므로, 따로 결과값 카운트 X
    if pipe <= length:
        continue
    else:
        res += 1
        # 테이프를 붙일 지점을 새롭게 업데이트 해줌
        length = pipe + L - 0.5

print(res)


📌

저는 손글씨 감성이 좋아요ㅎ 하하하하

물이 새는 곳의 위치를 나타내는 pipe_list 리스트를 하나하나 보면서,
현재위치 + 테이프길이 L + 0.5 보다 작거나 같으면 한 테이프로 이어붙일 수 있다는 의미이므로 res 값을 따로 카운트 하지 않는다!
만약 크다면, 테이프 길이 범위 밖을 벗어났다는 의미이므로,
테이프 개수를 의미하는 res 값을 1 증가시키고, 새로운 테이프를 붙일 지점을 업데이트 해준다!

profile
Backend Developer

0개의 댓글