728x90
1. 문제 설명
2. 풀이 과정
- 문제 해결의 흐름
- 입력 받은 N개의 책 가격들을 오름차순으로 정렬하자.
- 책 가격들이 저장된 vector를 탐색하며 제일 값싼 책을 기준으로 2배 이상의 가격이 있다면 페이지를 늘리고 그 가격을 제일 값싼 책으로 갱신한다.
- 나의 코드
#include<iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
// 입력 받기
int N;
cin >> N;
vector<int> bookPrice;
for (int i = 0; i < N; i++) {
int price;
cin >> price;
bookPrice.push_back(price);
}
// 정렬
sort(bookPrice.begin(), bookPrice.end());
// 구현
int curPrice = bookPrice[0]; // 젤 값 싼 책 값
int cnt = 1;
for (int i = 1; i < N; i++) {
if (bookPrice[i] >= curPrice*2) {
curPrice = bookPrice[i];
cnt += 1;
}
}
cout << cnt;
return 0;
}
3. 후기
생각보다 쉬웠다!
'Algorithm > greedy' 카테고리의 다른 글
[백준] 16953 A->B (파이썬 Python) (0) | 2021.08.08 |
---|