문제 링크 : https://www.acmicpc.net/problem/10814
sort 함수를 사용하면 데이터를 정렬할 수 있다.
문제는 데이터가 두개의 값을 기준으로 분류해야 된다는 것이다.
첫번째는 나이, 두번째는 입력 순서
사실 이건 알고리즘 문제라기보다 문법 문제이다.
algorithm헤더에 있는 sort함수를 사용함에 있어서
유동적으로 활용할 수 있어야 풀 수 있다.
코드를 읽기전 sort함수의 사용법에 대한 아래 글 부터 읽어보기를 바란다.
https://tunafish78.tistory.com/81
#include <iostream>
#include <algorithm>
#include <string>
#define n_ 100005
using namespace std;
struct node {
int age;
int cnt;
char name[105];
bool operator<(node a) {
if (age == a.age) {
return cnt < a.cnt;
}
return age < a.age;
}
};
node arr[n_];
int main(void) {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
scanf("%d %s", &arr[i].age, arr[i].name);
arr[i].cnt = i;
}
sort(arr, arr + n);
for (int i = 0; i < n; i++) {
printf("%d %s\n", arr[i].age, arr[i].name);
}
}
'알고리즘 > PS' 카테고리의 다른 글
[백준 2293] 동전 1 (0) | 2020.07.29 |
---|---|
[백준 14469] 소가 길을 건너간 이유 3 (0) | 2020.07.29 |
[백준 1111] IQ Test (0) | 2020.07.16 |
[백준 1149] RGB거리 (0) | 2020.07.15 |
[백준 1003] 피보나치 함수 (0) | 2020.07.13 |