728x90
반응형
목차
https://www.acmicpc.net/problem/1620
문제
문제 구현 방향
탐색 시간을 줄이기 위해서 string-int형식은 시간 복잡도가 O(logN)이 나오는 map을 이용해야 한다.
int-string형식은 array는 O(1) map은 O(logN)이므로 어떤 것을 써도 크게 시간 차이는 나지 않는다.
문제 구현 시 주의점
ios_base::sync_with_stdio(false); 이것으로 입출력 시간을 줄여 주지 않으면 시간 초과가 난다.
코드 구현
#include <iostream>
#include<map>
#include<algorithm>
#include <string>
using namespace std;
map<int, string> m1;
map<string, int> m2; //map을 통해 시간을 줄여줌
int main() {
ios_base::sync_with_stdio(false); ///입출력 시간 줄여줌
cin.tie(0);
cout.tie(0);
int N, M;
string str, q;
cin >> N >> M;
for (int i = 0; i < N; i++) {
cin >> str;
m1.insert(make_pair(i + 1, str));
m2.insert(make_pair(str, i + 1));
}
for (int i = 0; i < M; i++) {
cin >> q;
if (atoi(q.c_str()) != 0) { //string을 숫자로 만드는 방법 atoi(q.c_str()) 중요!
cout << m1[atoi(q.c_str())] << "\n";
}
else {
cout << m2[q] << "\n";
}
}
}
반응형
'백준 문제풀이' 카테고리의 다른 글
[백준][스택] 3986 좋은 단어 c++구현 (0) | 2024.03.30 |
---|---|
[백준][조합] 1940 주몽 c++구현 (0) | 2024.03.30 |
[백준][누적 합] 2559 수열 c++구현 (0) | 2024.03.27 |
[백준][bfs] 10026 적록색약 c++ 구현 (0) | 2024.03.22 |
[백준][이분 탐색] 18770 c++ 구현 (0) | 2024.03.20 |