전공/백준
1449
yha97
2022. 10. 27. 20:56
날짜 : 2022. 10. 27
사용 언어 : python
문제
코드
import sys
n, l = map(int, sys.stdin.readline().split()) # 구멍 갯수, 테이프 길이
spot = list(map(int, sys.stdin.readline().split())) # 구멍 위치
hole = [True] * (1002)
cnt = 0
for i in spot:
hole[i] = False
i = 0
while i < 1002:
if hole[i] == False: # 구멍 발견
cnt += 1
for j in range(l):
if i+j in range(1002):
hole[i + j] = True # 구멍 메꾸기
i += 1
print(cnt)
알게된 점
- 구멍이 뚫리면 False, 정상은 True로 설정해 이중 for문으로 풀이하는 문제였다.
- 말이 이중 for문이지 실제론 최대 1002 * 1000이기 때문에 약 100만의 연산횟수라서 시간은 넉넉했다.
- 구멍 뚫린 위치에서 좌우 0.5의 추가간격을 지정한다는 조건에 대해서 잘못 이해해 1단위로 하는 바람에 확실한 방향을 잡는데 어려움이 있었다.
- 방향을 잡고 문제를 해결하는데 큰 어려움은 없었다.
참고 사이트
-