오답노트
[해시] BOJ 1620번 나는야 포켓몬 마스터 이다솜 본문
https://www.acmicpc.net/problem/1620
1620번: 나는야 포켓몬 마스터 이다솜
첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면
www.acmicpc.net
- 문제파악
포켓몬의 이름이 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 |