Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- c++ split
- 백준 dfs
- OS
- C# 병합정렬
- 백준 10709
- 월곡역 학원
- 월곡중 학원
- 상월곡동 학원
- 월곡중학교 학원추천
- 운영체제
- 상월곡역 학원
- 백준 토마토
- C++ 문자열
- 백준 14246번
- 백준 9375번 패션왕 신해빈
- C++ 9996
- 백준 패션왕 신해빈
- 관리형 학원
- 백준 2309번 일곱 난쟁이
- 월곡동 학원추천
- 성북구 학원
- 서울사대부고 학원
- 백준 1049번
- 백준 한국이 그리울 땐 서버에 접속하지
- c++ 조합
- 고정 소수점
- DFS
- 백준 1049번 기타줄
- 백준 K보다 큰 구간
- 백준 14246번 K보다 큰 구간
Archives
- Today
- Total
키베이루's diary
[C++] 백준 1449번 수리공 항승 본문
1) 문제설명
https://www.acmicpc.net/problem/1449
1449번: 수리공 항승
첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나
www.acmicpc.net
2) 아이디어
입력받은 배열을 오름차순으로 정렬하고 앞에서 뒤를 뺀 결과만큼 테이프를 소모한다.
그리고 테이프를 모두 소모하면(테이프의 길이가 1보다 작을 경우) 테이프를 다시 리셋시켜준다.
3) 코드
#include<iostream>
#include<queue>
#include<deque>
#include<string.h>
#include<math.h>
#include<cmath>
#include<stack>
#include<algorithm>
using namespace std;
int main() {
int n, l;
int* arr;
cin >> n >> l;
arr = (int*)malloc(sizeof(int) * n);
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
sort(arr, arr + n); // 오름차순
int cnt = 0, temp = l;
int i = 0;
while (i < n) { //
if (i + 1 < n) {
l = l - (arr[i + 1] - arr[i]); // 테이프를 길이만큼 사용하다가
}
if (l < 1) { // 테이프의 길이가 1보다 작으면
l = temp; // 테이프의 길이를 초기화한다.
cnt++;
}
i++;
}
cout << cnt+1 << endl;
}
'알고리즘 > Greedy' 카테고리의 다른 글
[C++] 백준 1049번 기타줄 (0) | 2022.10.17 |
---|---|
[C++] 백준 2217번 로프 (0) | 2022.06.08 |
[C++] 백준 2847번 게임을 만든 동준이 (0) | 2022.05.31 |
[C++] 백준 15903번 카드 합체 놀이 (0) | 2022.05.22 |
[C++] 백준 2012번 등수 매기기 (0) | 2022.05.22 |
Comments