반응형
<문제 소개>
<소스 코드>
#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은 중복된 수들이 제거되어 적합하지 않았다.
그래서 그냥 벡터를 이용했다.
<제출결과>