https://www.acmicpc.net/problem/9237
일단 첫 번째 시도를 실패했는데
문제를 잘못 읽었다.
나무 심는 순서를 신중하게 골라서 최대한 빨리 초대하려고 한다
심는 순서를 내가 정하는 것이었다!!!
차례대로인 줄
문제를 잘 읽자.
먼저, 최대한 빨리 초대하려고 하니깐,
정렬을 했다.
정렬하고 나서 묘묙 하나를 심는데 걸리는 시간이 1일 걸린다고 했다.
그러니 심는데 시간이 1일이 걸린다고 먼저 더하고 시작해야 하는 것이다.
정리해보자면,
만약 묘목 자라는데 걸리는 시간이 5 9 8 2라고 하자.
정렬하면
2 5 8 9이다.
그럼 빨리 초대하려고 하니깐.
그럼 묘목 자라는데 걸리는 시간이 9일 걸리는 묘목부터 심어야 한다.
그런데 묘목 심는데 걸리는 시간이 1일이니깐,
9일 걸리는 묘목을 심는 데는 1+9일이 걸리고
이장님을 초대하는데 다음날 초대하니깐
결과는 9 +2일이 걸리는 것이다.
이렇게 더하면
2 5 8 9 묘목은
+ 5 4 3 2
7 9 11 11일 걸린다.
그럼 최댓값은 11일.
최대 11일이 걸린다.
소스코드는
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int count;
int max_num = 0;
int input[100001];
cin >> count;
for (int i = 0,num; i < count; i++) {
cin >> input[i];
}
sort(input, input + count);
for (int i = count - 1,add =2; i >= 0; i--) {
max_num = max(input[i] + add, max_num);
add++;
}
cout << max_num;
return 0;
}
'Coding Test > Problem_solving' 카테고리의 다른 글
[프로그래머스] 소수 만들기 c++ (0) | 2021.06.29 |
---|---|
[백준] 11399_ATM (python, c++) (0) | 2021.06.28 |
[백준] 2304 창고 다각형 c++ (0) | 2021.04.08 |
[백준] 1373_2진수 8진수 (c++) (0) | 2021.03.11 |
[백준] 10808 알파벳 개수 (0) | 2021.03.09 |