문제접근
•
string이 입력되었을 경우 map을 통해 탐색, 숫자가 입력되었을 경우 그것을 index로 사용하여 탐색
놓쳤던 부분
•
vector에서 find의 경우 nlogn 시간 복잡도를 가지기 때문에 시간 초과 발생
코드
20868 KB
168 ms
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <cctype>
using namespace std;
int main(void)
{
int n,m;
vector<string> name;
map<string, int> name_map;
string input;
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n >> m;
name.resize(n);
for (int i = 0; i < n; i++)
{
cin >> name[i];
name_map[name[i]] = i + 1;
}
for (int i = 0; i < m; i++)
{
cin >> input;
if (isalpha(input[0]))
{
cout << name_map[input] << "\n";
}
else
{
cout << name[stoi(input) - 1] << "\n";
}
}
return (0);
}
C++
복사