728x90
반응형

블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다.


문제 설명

  • 첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000)
  • 둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다.
    나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. 입력은 가입한 순서로 주어진다.

풀이 전략

  • 나이와 이름의 맵핑을 중점으로 생각하였다.
  • 키로 사용한 나이가 중복될 수 있으므로 map이 아닌 여러 키를 가질 수 있는 multimap을 사용하였다.

소스 코드

#include <iostream>
#include <map>
#include <string>

using namespace std;
int main()
{
	multimap<int, string> m;
	int n;
	cin >> n;

	for ( int i = 0; i < n; i++ )
	{
		int x;
		string s;

		cin >> x;
		cin >> s;

		m.insert( pair<int, string>( x, s ) );
	}

	for ( pair<int, string> data : m )
	{
		cout << data.first << ' ' << data.second << '\n';
	}
}

링크

 

 

10814번: 나이순 정렬

온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 �

www.acmicpc.net

 

728x90
반응형

'문제풀이 > BOJ' 카테고리의 다른 글

[C++ 백준] 1874 스택 수열  (0) 2020.07.08
[C++ 백준] 11650 좌표 정렬하기  (0) 2020.06.25
[C++ 백준] 1546 평균  (0) 2020.03.23
[C++ 백준] 3052 나머지  (0) 2020.03.21
[C++ 백준] 2577 숫자의 개수  (0) 2020.03.18