https://www.acmicpc.net/problem/1620
C++
아이디어:
1. map은 value로 key를 찾는 함수가 없어 직접 for문을 만들어야하기 때문에 시간 초과를 유발한다.
따라서 map<int, string>과 map<string, int>로 2개의 map을 만들고 find 함수를 사용한다.
2.출력은 입력 들어오는대로 했다.
3. 전역변수로 선언해서 메모리의 스택 영역이 아닌 힙 영역을 사용했다.
// 1620
#include <iostream>
#include <map>
#include <string>
using namespace std;
map<int, string> db;
map<string, int> db2;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n, m, k;
string value;
cin >> n >> m;
for (int i = 0; i < n; i++) {
cin >> value;
db.insert({i + 1, value});
db2.insert({value, i + 1});
}
cin.ignore();
for (int i = 0; i < m; i++) {
cin >> value;
if (isdigit(value[0]) != false) {
k = stoi(value);
cout << db.find(k)->second << "\n";
}
else {
cout << db2.find(value)->second << "\n";
}
}
return 0;
}
'algorithm' 카테고리의 다른 글
백준 1934번 최소공배수 (1) | 2024.10.20 |
---|---|
백준 11478번 서로 다른 부분 문자열의 개수 (0) | 2024.10.20 |
백준 1269번 대칭 차집합 (2) | 2024.10.13 |
백준 1764번 듣보잡 (3) | 2024.10.13 |
백준 10816번 숫자 카드 2 (1) | 2024.10.13 |