알고리즘 문제/BOJ
1449번 수리공 항승
parkit
2020. 1. 2. 22:49
728x90
반응형
https://www.acmicpc.net/problem/1449
Greedy
그리디
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 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include <bits/stdc++.h> using namespace std; int N, L, ans; vector<int> v; int main() { //freopen("C:\\Users\\park7\\Desktop\\sample_input.txt", "r", stdin); cin.tie(0); scanf("%d %d", &N, &L); int pos; for (int i = 0; i < N; i++) { scanf("%d", &pos); v.push_back(pos); } bool chg = false; sort(v.begin(), v.end()); for (int i = 0; i < v.size(); i++) { int tape = v[i]; while (1) { if (i + 1 >= v.size()) break; // 미리 범위 체크 if (tape + L <= v[i + 1]) break; // 다음 것에 대한 원소와 비교하여 같거나 작으면 break // break 한다는 뜻은 테이프가 v[i+1]까지 도달하지 못 하므로, // v[i+1]에 대하여 테이프를 하나 추가 38번 째 줄 ++i; } ++ans; } printf("%d\n", ans); return 0; } | cs |
728x90
반응형