728x90
출처
https://www.acmicpc.net/problem/1620
내 풀이
#include<iostream>
#include<string>
#include<map>
using namespace std;
map<string, string> pokemons;
string pokemon_number[100001];
string pokemon = "";
int N = 0, M = 0;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> N >> M;
for (int i = 1; i <= N; i++)
{
//형변환 도감번호 넣음
string numbers = to_string(i);
cin >> pokemon;
pokemons.insert({ pokemon,numbers }); // 포켓몬 도감번호
pokemon_number[i] = pokemon;
}
for (int i = 0; i < M; i++)
{
cin >> pokemon;
//번호 입력 했을시
if (pokemon[0] >= '1' && pokemon[0] <= '9')
{
int number = stoi(pokemon);
cout << pokemon_number[number] << "\n";
}
else cout << pokemons[pokemon] << "\n";
}
}
해설
도감 번호를 입력받았을 시 출력할 문자열 배열과 포켓몬을 통해 도감번호를 출력할 맵을 선언한 후
if문을 통해 입력받은 것에 따라 배열, 맵을 출력해주었다.
느낀점
시간 초과 때문에 쪼끔 어려웠다.
'백준 코딩테스트 > 실버' 카테고리의 다른 글
11478) 서로 다른 부분 문자열의 개수 (C++) (0) | 2022.05.17 |
---|---|
1269) 대칭 차집합 (C++) (0) | 2022.05.17 |
14425) 문자열 집합 (C++) (0) | 2022.05.11 |
4949) 균형잡힌 세상 (C++) (0) | 2022.05.10 |
1021) 회전하는 큐 (C++) (0) | 2022.05.09 |