오답노트
[해시] BOJ 1620번 나는야 포켓몬 마스터 이다솜 본문
https://www.acmicpc.net/problem/1620
- 문제파악
포켓몬의 이름이 N개 이다솜이 알고싶은 포켓몬의 이름 또는 포켓몬의 숫자가 M개 입력된다. 이 때 이다솜이 알고 싶은 포켓몬의 이름 또는 포켓몬의 숫자를 출력하라. 포켓몬의 숫자는 처음에 입력될 때 들어온 순서다.
- 정답
unordered_map 변수를 두 개 선언했지만
숫자를 물어보면 이름을 답하는건 배열로 해도 충분하다.
#include "bits//stdc++.h"
using namespace std;
int main()
{
cin.tie(0);
ios::sync_with_stdio(0);
int n, m;
cin >> n >> m;
unordered_map<string, int> m_namekey;
unordered_map<int, string> m_numberkey;
int num = 1;
while (n--)
{
string name;
cin >> name;
m_namekey.insert({ name,num });
m_numberkey.insert({ num,name });
num++;
}
while (m--)
{
string input;
cin >> input;
if (input[0] >= '0' && input[0] <= '9')
{
int num;
num = stoi(input);
cout << m_numberkey[num] << "\n";
}
else
cout << m_namekey[input] << "\n";
}
}
'C,C++ > 코딩테스트' 카테고리의 다른 글
[투 포인터] BOJ 1644번 소수의 연속합 (0) | 2022.06.11 |
---|---|
[투 포인터] BOJ 1806번 부분합 - 오답노트 (0) | 2022.06.11 |
[해시] BOJ 7785번 회사에 있는 사람 (0) | 2022.06.10 |
[이분탐색] BOJ 10816번 숫자 카드2 - 오답노트 (0) | 2022.06.10 |
[이분탐색] BOJ 1920번 수 찾기 (0) | 2022.06.09 |