본문 바로가기
코딩테스트 준비/백준

[백준 10814번][C++] 나이순 정렬

by 스테디코디스트 2023. 8. 1.
반응형

<문제 소개>


<소스 코드>

#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <map>
#include <unordered_map>
#include <set>
#include <cmath>
#include <stack>
#include <queue>
#include <algorithm>
#include <cstdlib>
using namespace std;

int main()
{
	// 쓰레드 환경이 아닐때 버퍼를 분리하여 처리속도를 빠르게 해줌
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int N;
	cin >> N;

	vector<string> user[201];

	for (int i = 0; i < N; i++)
	{
		int age;
		string name;
		cin >> age >> name;

		user[age].push_back(name);
	}
	
	for (int i = 1; i <= 200; i++)
	{
		if (user[i].size() <= 0) continue;

		for (int j = 0; j < user[i].size(); j++)
		{
			cout << i << " " << user[i][j] << "\n";
		}
	}
	
	return 0;
}

<풀이과정>

1. N을 입력받음

2. string형 vector<string> user를 201개의 배열로 생성 

3. N만큼 반복하며 이름과 나이를 받아오고 나이를 인덱스로 하여 이름을 저장해준다.

4. 최대 나이가 200인 점을 이용해서 벡터를 반복하며 출력해준다.


<코멘트>

map을 쓰려 했는데 map은 중복된 수들이 제거되어 적합하지 않았다.

그래서 그냥 벡터를 이용했다.


<제출결과>