본문 바로가기
백준 코딩테스트/실버

9327) 이장님 초대 (C++)

by xortl98 2022. 4. 28.
728x90

 출처 

https://www.acmicpc.net/problem/9237

 

9237번: 이장님 초대

입력은 두 줄로 이루어져 있다. 첫째 줄에는 묘목의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄에는 각 나무가 다 자라는데 며칠이 걸리는지를 나타낸 ti가 주어진다. (1 ≤ ti ≤ 1,000,000)

www.acmicpc.net

 내 풀이 

#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