14469 - 소가 길을 건너간 이유 3

재찬·2023년 2월 6일
0

Algorithm

목록 보기
47/64

문제

코드

#include<bits/stdc++.h>
using namespace std;

int n,s,e,sum,ret;
vector<pair<int,int>> v;

int main(){
	cin >> n;
	for(int i = 0; i <n; i++){
		cin >> s >> e;
		v.push_back({s,e});
	}
	
	sort(v.begin(), v.end());
	
	for(int i = 0; i < n; i++){
		if(i+1 < n && v[i].first + v[i].second > v[i+1].first){
			v[i+1].first = v[i].first + v[i].second;
		}
	}
	cout << v[n-1].first + v[n-1].second << '\n';
}

풀이

시작 시간을 기준으로 정렬한 뒤 시작 위치를 시작 위치 + 걸리는 시간으로 이동 시켜주면 쉽게 풀 수 있는 문제였다.

결과

후기

정렬 해본다면 금방 풀 수 있는 문제였다.

0개의 댓글