inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

1-I

시간초과

319

kokoxg2

작성한 질문수 6

1

안녕하세요, 1620 나는야 포켓몬 마스터 이다솜 문제관련 질문드립니다.
 
강사님 코드와 거의 비슷하고 atoi 부분만 제가 함수로 작성해서 제출을 했지만 계속 시간초과가 떠서 강사님 코드로 수정해서 돌렸는데도 시간 초과가 뜹니다.. 혹시 아래 코드에서 어디서 문제일까요?
 
 
#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;
}

C++ 코테 준비 같이 해요!

답변 1

3

큰돌

안녕하세요. kokoxg2님ㅎㅎ 

먼저 코드를 다 확인했는데요. 다른 부분은 다 잘 짜셨고 

아마 endl이 "\n" 등 개행문자보다 시간이 많이 걸리는 함수라서 그런 것같습니다. endl은 결과값에 관한 버퍼를 매번 플러시를 하는 함수라서요.

endl을 "\n"으로 바꿔서 해보시고

그렇게 해도 안 되면 제 코드 그대로 하시고 다른 문제 푸시는 것을 추천드립니다. 

이다솜문제가 시간초과에 굉장히 예민하게 되어있어서 맞더라도 시간초과가 뜨는 그런경우가 좀 발생되기도 합니다.

 

또 질문사항있으시면 언제든 말씀 부탁드립니다. 

감사합니다. 

강사 큰돌 올림. 

1-E질문입니다!

0

516

2

3-L 틀린 부분 피드백 부탁드립니다.

0

817

2

1-A문제 순열재귀함수 질문입니다.

0

381

1

1-A 일곱난쟁이문제입니다

0

454

1

문제 풀 때 방향성에 대해

0

798

1

맥에서 vs code로 실행 관련 질문입니다

0

522

1

17071번 메모리 초과

0

386

1

1-C질문입니다!

0

418

2

2-B BFS 시간초과질문

0

629

2

1-O 13번 라인

0

440

1

6-J 놀이공원 문제 질문

0

380

1

구현관련 질문

0

482

1

강의 교안

0

318

1

실력을 더 올리고나서 강의를 보는 것이 맞을까요?

0

545

1

안녕하세요! 재귀함수에 관해서 질문드립니다

0

535

1

1-K

0

473

2

3-G번 질문있습니다.

1

473

3

3-C 실행 시간 질문드립니다.

0

493

1

4-A 문제 풀이 질문있습니다.

0

590

2

비트마스킹 연산자 "1의 보수" 영문 표기법

0

435

1

격자탐색 문제에서 BFS 시간복잡도 질문드립니다.

0

334

1

3-O go 함수 질문 드립니다.

1

446

2

4-A 출력 질문

0

303

1

1주차 1-O 질문드립니다

0

255

1