반응형
map자료구조와 vector자료구조를 사용해보는 간단한 문제였습니다.
풀이방법
map자료구조에서 c++의 경우에는 value로부터 key를 추출하는 내장함수가 딱히 없어 vector자료구조를 이용했습니다.
1. 도감의 번호에 해당하는 포켓몬이름을 해당 자료구조에 저장했습니다.
2. 도감의 번호에 해당하는 포켓몬이름이 주어질 경우 map의 value를 출력하도록 했고 반대로 도감의 포켓몬 이름이 주어질 경우엔 포켓몬 번호를 vector자료구조의 값을 찾아 출력하도록 작성했습니다.
Code
#include <iostream>
#include <string>
#include <vector>
#include <map>
#define fastio ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
int main(){
fastio;
int n,m;
map <string,int> encyclopedia;
vector <string> vec_encyclopedia(100001);
cin >> n >> m;
for(int i = 1; i <= n; i++){
string pokemonName;
cin >> pokemonName;
encyclopedia[pokemonName]=i;
vec_encyclopedia[i] = pokemonName;
}
while(m--){
string x;
cin >> x;
if('1'<=x[0] && x[0] <= '9') //숫자일 경우
cout << vec_encyclopedia[stoi(x)]<<'\n';
else // 포켓몬 이름일 경우
cout << encyclopedia[x]<<'\n';
}
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 2630번 : 색종이 만들기 답 (0) | 2020.09.10 |
---|---|
(C++) - 백준(BOJ) 1927번 : 최소 힙 답 (0) | 2020.09.08 |
(C++) - 백준(BOJ) 1074번 : Z 답 (0) | 2020.09.08 |
(Python) - 백준(BOJ) 16829번 : Hashing 답 (0) | 2020.08.23 |
(Python) - 프로그래머스(Programmers) : 전화번호 목록 답 (0) | 2020.08.16 |