728x90
https://www.acmicpc.net/problem/1620
문제 풀이
맵으로 해결 가능한 문제이다!
포켓몬의 이름과 번호를 받는 맵과 반대로 구현된 맵 두 개를 구현해서 해결했다.
느낀 점
어렵지 않은 문제였다. 다만 두 개를 구현했다는 점에서 메모리적 측면에서 잘 구현했는지 모르겠다.
코드
#include <iostream>
#include <map>
#include <string>
#include <sstream>
using namespace std;
int n, m;
map<string, int> dogam;
map<int, string> semi;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m;
for (int i = 0; i < n; i++) {
string tmp;
cin >> tmp;
dogam.insert({ tmp, i + 1 });
semi.insert({ i+1, tmp });
}
for (int i = 0; i < m;i++) {
string s;
int n;
cin >> s;
if ('A' <= s[0] && s[0] <= 'Z') {
auto iter = dogam.find(s);
if (iter != dogam.end()) {
cout << iter->second << "\n";
}
}
else {
stringstream toi(s);
toi >> n;
auto iter = semi.find(n);
if (iter != semi.end()) {
cout << iter->second << "\n";
}
}
}
}
'문제 풀이 > 백준(BOJ)' 카테고리의 다른 글
[C++] 백준 2075번 : N번째 큰 수 (0) | 2021.10.26 |
---|---|
[C++] 백준 7662번 : 이중 우선순위 큐 (0) | 2021.10.26 |
[C++] 백준 1918번 : 후위 표기식 (0) | 2021.10.17 |
[C++] 백준 22942번 : 데이터 체커 (0) | 2021.10.16 |
[C++] 백준 2493번 : 탑 (0) | 2021.10.14 |
댓글