티스토리 뷰
https://www.acmicpc.net/problem/1449
1449번: 수리공 항승
첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나
www.acmicpc.net
1. 물이 세는곳의 위치를 오름차순 정렬한다.
2. 반복문을 돌면서 첫위치부터 테이프를 붙인다.
3. 이전에 붙인 테이프의 끝위치를 기억해서 (물세는위치-0.5+L) 다음 물세는 위치가 이전 테이프의 끝위치보다 작으면
이전 테이프로 커버되므로 스킵한다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n,l;
vector<int> pipe;
int main()
{
cin >> n >> l;
for(int i = 0; i < n; i++)
{
int num;
cin >> num;
pipe.push_back(num);
}
// 오름차순 정렬
sort(pipe.begin(), pipe.end());
int cnt = 0;
double end = 0;
for(int i = 0; i < n; i++)
{
// 이전에 붙인 테이프가 현재 물이 세는곳 위치를 커버하면 continue
if(end > pipe[i]) continue;
end = pipe[i]-0.5+l;
cnt++;
}
cout << cnt;
}
'PS' 카테고리의 다른 글
백준 16953. A->B (0) | 2021.08.10 |
---|---|
백준 15904. UCPC는 무엇의 약자일까? (0) | 2021.08.10 |
백준 1080. 행렬 (0) | 2021.08.09 |
백준 1439. 뒤집기 (0) | 2021.08.09 |
백준 4796. 캠핑 (0) | 2021.08.09 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Implementation
- recursion
- priority queue
- Unity
- Kruskal
- CSS
- 조합
- 재귀
- Python
- graph
- permutation
- floyd warshall
- dfs
- Stack
- Spring
- binary search
- 이분탐색
- Brute Force
- back tracking
- BFS
- two pointer
- C
- DP
- MVC
- Dijkstra
- greedy
- C++
- db
- 자료구조
- Tree
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함