https://www.acmicpc.net/problem/1449
1449번: 수리공 항승
첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나
www.acmicpc.net
그리디 알고리즘과 정렬 알고리즘
정렬은 파이썬과 c++ 모두 STL 라이브러리로 한줄로 쉽게 끝난다.
정렬을 함으로써 그리디 알고리즘을 쉽게 구현할 수 있습니다.
파이썬 코드
#1449
N, L = map(int, input().split())
leak = list(map(int, input().split()))
leak.sort()
start = leak[0]
end = leak[0]+L
tape = 1
for i in range(N):
if start<= leak[i] < end:
continue
if end > 1000:
continue
else:
start = leak[i]
end = leak[i]+ L
tape += 1
print(tape)
c++코드
#include<iostream>
#include<algorithm>
using namespace std;
const int MAX=1000+1;
int main(){
int N, L;
cin>>N>>L;
int leak[1000]={0,};
for(int i=0;i<N;i++)
cin>>leak[i];
sort(leak, leak+N);
int start = leak[0];
int end = leak[0]+L;
int tape =1;
for(int i=0;i<N;i++){
if(start<=leak[i]&&leak[i]<end)
continue;
if(end>1000)
continue;
else{
start = leak[i];
end = leak[i]+L;
tape++;
}
}
cout<<tape;
}
'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
[백준/BOJ/알고리즘/DFS/그래프/파이썬(python)/C++]#2606_바이러스 (0) | 2021.09.05 |
---|---|
[백준/BOJ/알고리즘/파이썬(python)]#2621_카드게임 (0) | 2021.09.04 |
[백준/BOJ/알고리즘/파이썬(python)/C++/String]#1652_누울 자리를 찾아라 (0) | 2021.09.03 |
[백준/boj/알고리즘/파이썬(python)/C++/DFS]#11724:연결요소의 개수 (0) | 2021.09.01 |
[백준/boj/알고리즘/파이썬]#9655:돌 게임 (0) | 2021.08.31 |