-
[c++] 백준 1620번: 나는야 포켓몬 마스터 이다솜알고리즘 2022. 5. 15. 23:03
문제풀이
1. 문자열과 번호로 찾아야 하기 때문에 map함수를 이용하였다.
2. map 함수에 저장할때 키는 이름이고 값은 번호로 넣었다. map 함수는 키로 찾기 때문에 배열 하나를 더 만들어서 번호로 찾을 때 사용했다.
3. 이름으로 검색할 때는 map 함수에서 번호를 찾았고, 번호로 검색할 때는 배열 인덱스에 번호를 넣어 이름을 찾았다.
코드
#include <iostream> #include <string> #include <map> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int n, m; map<string, int> moster; string name[100000]; cin >> n >> m; for (int i = 1; i <= n; i++) { cin >> name[i]; moster.insert(make_pair(name[i], i)); } string question; for (int i = 0; i < m; i++) { cin >> question; // 입력이 번호일 경우 if (isdigit(question[0])) { cout << name[stoi(question)] << "\n"; } // 입력이 이름일 경우 else { cout << moster[question] << "\n"; } } return 0; }
'알고리즘' 카테고리의 다른 글
[c++] 백준 3986번: 좋은 단어 (0) 2022.05.21 [c++] 백준 9996번: 한국이 그리울 땐 서버에 접속하지 (0) 2022.05.20 [c++] 백준 1940번: 주몽 (0) 2022.05.15 [c++][구현] 백준 1159번: 농구 경기 (0) 2022.05.15 [c++][구현] 백준 2979번: 트럭 주차 (0) 2022.05.14