https://www.acmicpc.net/problem/1620
맨 마지막 줄만 보면 문제가 요구하는 바를 알 수 있다.
문자를 숫자로, 숫자를 문자로 변환하면 된다.
문자에 해당하는 숫자는 입력된 순서이다.
#include <iostream>
#include <vector>
#include <string>
#include <unordered_map>
using namespace std;
int main()
{
ios::sync_with_stdio(0), cin.tie(0);
int N, M;
string poke;
cin >> N >> M;
vector<string> v(N + 1);
unordered_map<string, int> um;
for (int i = 1; i <= N; ++i)
{
cin >> poke;
v[i] = poke;
um[poke] = i;
}
for (int i = 0; i < M; ++i)
{
cin >> poke;
if (poke[0] >= '0' && poke[0] <= '9')
{
int pNum = stoi(poke);
cout << v[pNum] << "\n";
}
else
{
cout << um[poke] << "\n";
}
}
return 0;
}
map을 사용하여서 해결하면 된다.
문제에 스토리가 길지만 필요한 내용은 없으니 빨리 넘어가는 게 좋다.