해결된 질문
작성
·
337
2
안녕하세요 강사님~! 강의 잘 보고 있습니다. 다름이 아니라 강사님 코드와 거의 흡사한데, 시간초과가 떠서 뭐가 빠졌나 하고 보니까
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
이걸 넣으니 맞았다고 하는데.. 이 코드가 시간초과에 영향이 큰지 여쭤보려고 합니다.. 아래는 시간초과한 코드이고 여기에 상단의 코드를 넣으니 답으로 인정해줬습니다!
#include <bits/stdc++.h>
using namespace std;
int n, m;
string buf;
map<string, int> mp;
map<int, string> rmp;
int main()
{
cin >> n;
cin >> m;
for (int i = 0; i < n; ++i) {
cin >> buf;
mp[buf] = i + 1;
rmp[i + 1] = buf;
}
for (int i = 0; i < m; ++i) {
cin >> buf;
if (atoi(buf.c_str()) != 0) {
cout << rmp[atoi(buf.c_str())] << "\n";
continue;
}
cout << mp[buf] << "\n";
}
return 0;
}
답변 1
1
안녕하세요. ㅎㅎ
저게 시간초과에 미치는 영향이 크긴합니다.
- 일부문제는 cin.tie 안해도 시간초과가 안나기도 하고.. 케바케에요 근데 ㅠ
시간초과가 난다 >> 로직이상유무 확인 >> cin.tie 이렇게 하시는게 좋아요 .
- 다만... 왠만하면 cin 사용하신다면 그냥 cin.tie 걸고 하시는 것을 추천드립니다.
감사합니다.
빠른답변 감사합니다~~!