※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 1449번 문제인 수리공 항승이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/1449
1449번: 수리공 항승
첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나
www.acmicpc.net
주어진 파이프의 맨 왼쪽 물이 새는 곳을 테이프로 막아야 할 것이다. 이 때, 이 테이프가 최대한 많은 구멍들을 가릴 수 있게끔 최대한 오른쪽에 붙이는 것이 항상 최선의 결과를 가져오게 된다는 점을 관찰하는 것으로 문제를 해결할 수 있다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <algorithm>
using namespace std;
int arr[1001];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int N, D; cin >> N >> D;
for (int i = 0; i < N; i++) cin >> arr[i];
sort(arr, arr + N);
int cov = -1;
int ans = 0;
for (int i = 0; i < N; i++) {
int& x = arr[i];
if (x < cov) continue;
cov = x + D;
ans++;
}
cout << ans;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 1431 // C++] 시리얼 번호 (0) | 2022.03.01 |
---|---|
[BOJ 7596 // C++] MP3 Songs (0) | 2022.02.28 |
[BOJ 11381 // C++] Sequences (0) | 2022.02.26 |
[BOJ 13335 // C++] 트럭 (0) | 2022.02.25 |
[BOJ 24267 // C++] 알고리즘 수업 - 알고리즘의 수행 시간 6 (0) | 2022.02.24 |