• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

이다솜 문제 시간초과.. ㄷㄷ

22.08.06 14:10 작성 조회수 272

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 걸고 하시는 것을 추천드립니다. 

 

감사합니다. 

 

wontae Kim님의 프로필

wontae Kim

질문자

2022.08.07

빠른답변 감사합니다~~!