-
[BOJ 1449, Python 3] 수리공 항승알고리즘/BOJ 2021. 8. 2. 12:58
https://www.acmicpc.net/problem/1449
1449번: 수리공 항승
첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나
www.acmicpc.net
풀이
구멍이 난 곳마다 테이프를 붙여주는데 이때 테이프의 마지막 길이를 변수로 정해둡니다.
이 값을 val이라고 하고, arr[i] + 0.5 <= val이면 테이프가 이미 해당 구멍을 막고 있으니 continue로 지나가고,
arr[i] + 0.5 > val이면 구멍을 막지 못했으니 테이프를 추가하여 val = arr[i] - 0.5 + l로 길이를 업데이트 해주면 됩니다.
예제는 정렬된 값이지만, 문제에서 정렬된 상태로 입력값이 주어진다고 나와있지 않아서 정렬을 했습니다.
코드
1234567891011n, l = map(int, input().split())arr = sorted([*map(int, input().split())])ans = 1val = arr[0] - 0.5 + lfor i in range(1, n):if val >= arr[i] + 0.5: continueans += 1val = arr[i] - 0.5 + lprint(ans)cs '알고리즘 > BOJ' 카테고리의 다른 글
[BOJ 11399, Python 3] ATM (0) 2021.08.02 [BOJ 2012, Python 3] 등수 매기기 (0) 2021.08.02 [BOJ 13413, Python 3] 오셀로 재배치 (0) 2021.08.01 [BOJ 13305, Python 3] 주유소 (0) 2021.08.01 [BOJ 2847, Python 3] 게임을 만든 동준이 (0) 2021.08.01