Skip to content

Commit d34420b

Browse files
committed
[Silver III] Title: 수리공 항승, Time: 0 ms, Memory: 2020 KB -BaekjoonHub
1 parent 6465623 commit d34420b

File tree

2 files changed

+63
-0
lines changed

2 files changed

+63
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# [Silver III] 수리공 항승 - 1449
2+
3+
[문제 링크](https://www.acmicpc.net/problem/1449)
4+
5+
### 성능 요약
6+
7+
메모리: 2020 KB, 시간: 0 ms
8+
9+
### 분류
10+
11+
그리디 알고리즘, 정렬
12+
13+
### 제출 일자
14+
15+
2025년 3월 24일 09:28:52
16+
17+
### 문제 설명
18+
19+
<p>항승이는 품질이 심각하게 나쁜 수도 파이프 회사의 수리공이다. 항승이는 세준 지하철 공사에서 물이 샌다는 소식을 듣고 수리를 하러 갔다.</p>
20+
21+
<p>파이프에서 물이 새는 곳은 신기하게도 가장 왼쪽에서 정수만큼 떨어진 거리만 물이 샌다.</p>
22+
23+
<p>항승이는 길이가 L인 테이프를 무한개 가지고 있다.</p>
24+
25+
<p>항승이는 테이프를 이용해서 물을 막으려고 한다. 항승이는 항상 물을 막을 때, 적어도 그 위치의 좌우 0.5만큼 간격을 줘야 물이 다시는 안 샌다고 생각한다.</p>
26+
27+
<p>물이 새는 곳의 위치와, 항승이가 가지고 있는 테이프의 길이 L이 주어졌을 때, 항승이가 필요한 테이프의 최소 개수를 구하는 프로그램을 작성하시오. 테이프를 자를 수 없고, 테이프를 겹쳐서 붙이는 것도 가능하다.</p>
28+
29+
### 입력
30+
31+
<p>첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 같은 자연수이다.</p>
32+
33+
### 출력
34+
35+
<p>첫째 줄에 항승이가 필요한 테이프의 개수를 출력한다.</p>
36+
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#include <iostream>
2+
#include <algorithm>
3+
4+
using namespace std;
5+
6+
int main() {
7+
int N, L;
8+
cin >> N >> L;
9+
10+
int pipe[1001];
11+
for (int i = 0; i < N; i++) {
12+
cin >> pipe[i];
13+
}
14+
15+
int ans = 1;
16+
sort(pipe, pipe + N);
17+
int start = pipe[0];
18+
for (int i = 1; i < N; i++) {
19+
if (start + L > pipe[i]) continue;
20+
start = pipe[i];
21+
ans++;
22+
}
23+
24+
cout << ans;
25+
26+
return 0;
27+
}

0 commit comments

Comments
 (0)