작성
·
273
1
#include<bits/stdc++.h>
using namespace std;
int n, m;
map<string, int> _map1;
map<int, string> _map2;
int toInt(string s) {
int ret = 0;
for(auto e : s) {
ret = ret * 10 + (e - '0');
}
return ret;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
string s;
cin >> n >> m;
for(int i = 1; i <= n; ++i) {
cin >> s;
_map1[s] = i;
_map2[i] = s;
}
for(int i = 0; i < m; ++i) {
cin >> s;
if('0' <= s[0] && s[0] <= '9') {
cout << _map2[toInt(s)] << endl;
} else {
cout << _map1[s] << endl;
}
}
return 0;
}
답변 1
3
안녕하세요. kokoxg2님ㅎㅎ
먼저 코드를 다 확인했는데요. 다른 부분은 다 잘 짜셨고
아마 endl이 "\n" 등 개행문자보다 시간이 많이 걸리는 함수라서 그런 것같습니다. endl은 결과값에 관한 버퍼를 매번 플러시를 하는 함수라서요.
endl을 "\n"으로 바꿔서 해보시고
그렇게 해도 안 되면 제 코드 그대로 하시고 다른 문제 푸시는 것을 추천드립니다.
이다솜문제가 시간초과에 굉장히 예민하게 되어있어서 맞더라도 시간초과가 뜨는 그런경우가 좀 발생되기도 합니다.
또 질문사항있으시면 언제든 말씀 부탁드립니다.
감사합니다.
강사 큰돌 올림.