다솜이형... 나의 완패야... 인정할게... (1620 시간초과 관련)
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
어디서 시간이 많이 걸리는지...모르겠습니다 ㅜㅜ 아래는 제가 스스로 짠 코드인데 시간초과가 나왔습니다. 초록 글씨 코드는 강사님 코드 딱 한번 보구 제 방식대로 만들자 해서 비슷하게 따라하려 했는데 또 시간초과가 나옵니다 ㅠ 제가 처음 짠 검은 글씨 코드는 입력을 받자마자 출력을 하는게 아니라 입력 다 받구나서 마지막에 몰아서 출력시키는게 원인같은 의심이라도 드는데, 강사님 코드 보구 짠 초록글씨는 왜 시간초과가 나는지 너무 궁금하고 억울(?)합니다. #include<bits/stdc++.h> using namespace std; int N, M; map<int, string> dogam; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> N >> M; string name; for (int i = 1; i <= N; i++) { cin >> name; dogam.insert(make_pair(i, name)); } string Q; multimap<int, string> A; for (int i = 1; i <= M; i++) { cin >> Q; if (isdigit(Q[0])) { //숫자가 들어올때 , A.insert(make_pair(i, dogam.find(stoi(Q))->second)); } else {//질문이 문자인경우 for (auto it = dogam.begin(); it != dogam.end(); it++) { if (it->second == Q) A.insert(make_pair(i, to_string(it->first))); } } } for (auto it = A.begin(); it != A.end(); it++) // 출력을 받자마자 하는게 아니라 여기서 몰아서 했습니다.. cout << it->second<< "\n"; } #include <bits/stdc++.h> using namespace std; int N, M; string input; map<int, string> dogam_byint; map<string, int> dogam_bystr; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> N >> M; for (int i = 1; i <= N; i++) { cin >> input; dogam_byint.insert(make_pair(i, input)); dogam_bystr.insert(make_pair(input, i)); } for (int i = 1; i <= M; i++) { cin >> input; if (isalpha(input[0])) cout << dogam_bystr.find(input)->second << endl; else cout << dogam_byint.find(stoi(input))->second << endl; } }
- 시간초과
- 코테 준비 같이 해요!
- C++





