문제
https://www.acmicpc.net/problem/10814
소스코드
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
bool compare(pair<int, string> a, pair<int, string> b) {
if (a.first < b.first) return true;
else return false;
}
int main(void) {
int N; cin >> N;
vector<pair<int, string>> members(N);
for (int i = 0; i < N; i++) {
cin >> members[i].first >> members[i].second;
}
stable_sort(members.begin(), members.end(), compare);
for (int i = 0; i < N; i++) {
cout << members[i].first << " " << members[i].second << '\n';
}
}
설명
- bool compare 함수와 stable_sort를 사용하는 것이 중요! stable_sort의 sort와의 차이점은 입력받은 순서를 유지한다는 점이다. 또한 pair가 파라미터로 전달 될 수 있다는 점..!
- 출력을 하는 for문에서 '\n' 대신에 endl 을 쓰면 시간초과가 났다.
'개인 공부 > 코딩테스트' 카테고리의 다른 글
[C++] 백준 11053번 가장 긴 증가하는 부분 수열 :: seoftware (0) | 2020.03.13 |
---|---|
[C++] 백준 10250번 ACM 호텔 :: seoftware (0) | 2020.03.13 |
[C++] 백준 1193번 분수찾기 :: seoftware (0) | 2020.03.13 |
[C++] 백준 1011번 Fly me to the Alpha Centauri :: seoftware (0) | 2020.03.07 |
[C++] 백준 10989번 수 정렬하기 3 :: seoftware (0) | 2020.03.06 |
댓글