반응형
문제 출처: www.acmicpc.net/problem/1449
1449번: 수리공 항승
첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나
www.acmicpc.net
1 . 문제 접근 방식
- 그리디 알고리즘을 떠올리면서 처음부터 탐색해 나아가며 시작점을 초기화 하는 방법을 이용하였다.
2 . 내가 푼 코드
import sys
N, L = map(int, sys.stdin.readline().split())
# 물이 새는 곳을 list형식으로 받고 오름차순 정렬
leak = sorted(list(map(int, sys.stdin.readline().split())))
# 첫 시작 점과 총 count수를 0으로 초기화
start = 0
total = 0
# start 지점을 계속해서 재할당 하는 방식을 이용하였다.
# 물이 샌 지점에서 테이프의 길이를 더하면 새로운 지점으로 갱신
# leak 리스트 내의 숫자보다 작을 경우에만 반복문을 돌도록 조건 설정
for i in range(len(leak)):
if start <= leak[i]:
start = leak[i] + L
total += 1
print(total)
3 . 결과 및 느낀점
- 성공! 범위를 잘못 설정해서 값이 이상하게 나오기도 했지만 그리디 알고리즘 문제들을 풀다보니 그래도 조금씩 나아가고 있는 느낌이다.
반응형
'개인 공부 > Algorithm' 카테고리의 다른 글
[Baekjoon/백준] 1026번 Python (0) | 2021.04.06 |
---|---|
[Baekjoon/백준] 11399번 Python (0) | 2021.04.06 |
[Baekjoon/백준] 14405번 Python (0) | 2021.04.06 |
[Baekjoon/백준] 1094번 Python (0) | 2021.04.05 |
[Baekjoon/백준] 2720번 Python (0) | 2021.04.05 |