KDHzoot's Github

Code for study, project, etc

자세히보기

알고리즘/PS

[백준 10814] 나이순 정렬

kdhzoot 2020. 7. 17. 18:41

문제 링크 : 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