인프런 커뮤니티 질문&답변

한유태님의 프로필 이미지
한유태

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

5-D

5-D 질문드립니다 :)

해결된 질문

작성

·

43

0

안녕하세요 선생님 🙂

별거 아닌 문제지만 조금 더 늘여서 한번 풀어봤는데요, 출력값도 맞고 디버깅을 해봐도 문제가 없는데 이 풀이가 왜 틀렸다고 하는지 잘 모르겠습니다. 한번 봐주시면 감사하겠습니다 :)

 

http://boj.kr/94a55f29a4664feb89f8929cf5a3a518

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 유태님 ㅎㅎ

정말 잘 짜셨네요. ㅎㅎ 다면 result부분에서 실수가 있으신것 같습니다.

해당 코드 참고해주세요. ㅎㅎ 다듬어봤습니다.

#include <bits/stdc++.h>

using namespace std;

int N;
int first, second;
int result = 0;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);

	cin >> N;
	vector<pair<int, int>> vec(N);

	for (int i = 0; i < N; i++)
	{
		cin >> vec[i].first >> vec[i].second;
	}
	sort(vec.begin(), vec.end());

	first = vec[0].first;
	second = vec[0].second;
	result = first + second;

	for (int i = 1; i < N; i++)
	{
		if (first + second > vec[i].first)
			vec[i].first = first + second;

		first = vec[i].first;
		second = vec[i].second;
		result = max(result, first + second);
	}

	cout << result << '\n';

	return 0;
}

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


한유태님의 프로필 이미지
한유태

작성한 질문수

질문하기