문제 링크 : https://www.acmicpc.net/problem/10814
10814번: 나이순 정렬
온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 �
www.acmicpc.net
sort 함수를 사용하면 데이터를 정렬할 수 있다.
문제는 데이터가 두개의 값을 기준으로 분류해야 된다는 것이다.
첫번째는 나이, 두번째는 입력 순서
사실 이건 알고리즘 문제라기보다 문법 문제이다.
algorithm헤더에 있는 sort함수를 사용함에 있어서
유동적으로 활용할 수 있어야 풀 수 있다.
코드를 읽기전 sort함수의 사용법에 대한 아래 글 부터 읽어보기를 바란다.
https://tunafish78.tistory.com/81
[STL] algorithm sort 함수 사용법
정렬 PS를 하다보면 데이터를 정렬한 뒤 다뤄야 하는 상황이 생긴다. 보통 이런 경우에 시간복잡도가 빠른 퀵정렬(quick sort)를 사용하는데 당연히 매번 구현하기는 번거로움으로 algorithm헤더에 이
tunafish78.tistory.com
#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 |