본문 바로가기

알고리즘/백준

[BOJ] [Python] 1449번 : 수리공 항승

설계 전 생각

 

구멍을 완전히 막으려면 양쪽 0.5cm씩 더 막아야 해서, 소수점을 신경써야했다.

그러나 구멍위치와 테이프 길이가 모두 정수형이기 때문에, 테이프 길이를 -1하고 구멍의 위치만 신경쓰기로 했다.

 

 

 

최종 설계

 

i번째 구멍 + ( l - 1)을 할 경우 i번째 구멍으로부터 테이프의 끝 위치를 알 수 있다.

 

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

hole.sort()

now_hole = 0
count = 0

for i in hole:
    if(now_hole < i):
        count += 1
        now_hole = i + l - 1
print(count)

 

 

 

노형준님 코드 참고한 설계

 

+ 마지막에 count += 1을 해야 한다. (마지막 구멍)

 

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

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

locate.sort()

now_locate = locate[0]
count = 0
new_i = 1

for i in range(new_i, n):
    if(locate[i] - now_locate >= l):
        print(locate[i], now_locate, l, count)
        count += 1
        now_locate = locate[i]
        new_i = i

count += 1
print(count)

 

노형준님 블로그