728x90
출처
https://www.acmicpc.net/problem/9237
내 풀이
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int N = 0; //묘목의 수
int Tree = 0; //입력받을 나무
int result = 0;
vector<int> day; //나무가 자라는 시간
int main()
{
cin >> N;
for (int i = 0; i < N; i++)
{
cin >> Tree;
day.push_back(Tree);
}
sort(day.begin(), day.end(), greater<int>());
for (int i = 0; i < N; i++)
{
day[i] += i + 2;
if (day[i] >= result) result = day[i];
}
cout << result;
}
해설
먼저 묘목을 내림차순으로 정렬해주고 묘목은 심는데 하루가 걸리고 자라는건 2일부터 시작하니 그걸 이용하여
큰 값부터 2씩 더해주면서 자라는데 가장 오래걸리는 나무를 찾아서 정답으로 출력해주었다.
느낀점
1시간씩 두들겨 맞다가 쉬운 실버5 문제를 풀어보니 빠르게 풀려서 기분이 좋았다.
'백준 코딩테스트 > 실버' 카테고리의 다른 글
1920) 수 찾기 (C++) (0) | 2022.05.01 |
---|---|
11053) 가장 긴 증가하는 부분 수열 (C++) (0) | 2022.04.30 |
2156) 포도주 (C++) (0) | 2022.04.28 |
2178) 미로 탐색 (C++) (0) | 2022.04.27 |
10844) 쉬운 계단의 수 (C++) (0) | 2022.04.26 |