inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

1-I

시간초과가 나와서 질문드립니다.

226

조해찬

작성한 질문수 3

0

강사님의 영상은 문제를 풀고 난 후, 잘 안 풀릴 때 보는게 좋은 것 같아 저만의 방식으로 푼 코드입니다.
시간초과가 나왔는데, 어디서 시간을 잡아먹는건지 감이 잡히지 않아서 글 올립니다.
포켓몬이 알파벳으로 주어지는지, 숫자로 주어지는지에 대한 판별은 string으로 값을 받고 0번째 인덱스의 값이 65와 같거나 크고 90과 같거나 작으면 알파벳이라 판단. 아닐경우 숫자로 판단하여 출력하게 하였습니다.

아래가 제 코드입니다.
http://boj.kr/93f1ddafe1484c2b892e25729c745365

c++ 코딩-테스트

답변 3

0

큰돌

아아.. ㅎㅎ 해결하셨군요 ㅎㅎ

맞습니다.

#include<bits/stdc++.h>
using namespace std;
int n, k;
string name;
#define endl "\n"
map<string, int> po_nu;
map<int, string> nu_po;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
	cin >> n >> k;
	for (int i = 1; i <= n; i++) {
		cin >> name; po_nu[name] = i; nu_po[i] = name;
	}
	for (int i = 0; i < k; i++) {
		cin >> name;
		if (name[0] >= 65 && name[0] <= 90) { cout << po_nu[name] << endl; }
		else { cout << nu_po[stoi(name)] << endl; }
	}
}

이렇게 하시면 됩니다.

 

감사합니다.

0

조해찬

아아 endl에서 시간이 오래 걸리는 줄 몰랐습니다..
인프런AI인턴 얘기 듣고 "\n"으로 사용하니 해결되었습니다!!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 조해찬님의 질문에 대해 적절한 해결 방법을 제공하는 기존 답변을 찾았습니다.

질문 하신 내용은 시간 초과 문제와 관련한 것으로 파악됩니다. 시간 초과가 발생하는 주요 원인 중 하나는 비효율적인 데이터 구조의 사용이나 알고리즘의 복잡성 때문일 수 있습니다. 특히, 포켓몬 문제 같은 경우는 문자열과 숫자를 동시에 처리해야 하는 로직이 필요하여, 해시테이블 구조인 map을 적절히 활용하면 해결할 수 있습니다.

시간초과 관련하여 답변된 게시글을 참고하시면 도움이 될 것 같습니다. 해당 답변에서는 endl 대신 "\n"을 사용하여 출력할 때 발생하는 시간 지연을 줄이는 방법을 제시하고 있습니다. endl은 출력 후 버퍼를 비우는 작업을 수행하기 때문에, 시간이 많이 소요될 수 있습니다. 따라서, 빠른 입출력이 필요한 경우 "\n"을 사용하는 것이 좋습니다.

또 다른 질문 역시 시간 초과와 관련한 해결책을 제공하고 있습니다. 여기서는 데이터를 탐색할 때 전체 구조를 순회하는 대신, map의 특성을 활용하여 특정 키를 통해 직접 접근하는 방법을 권장하고 있습니다. 이는 알고리즘의 시간 복잡성을 줄여 시간 초과 문제를 해결할 수 있습니다.

조해찬님도 이러한 접근 방식을 참고하여 코드를 최적화해 보시기 바랍니다. 특히, 입력/출력 처리와 데이터 탐색 로직에서 성능 개선을 시도해 볼 수 있을 겁니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

코딩살구클럽 가입이 안됩니다.

0

16

0

살구 클럽에 대한 질문있습ㄴ디ㅏ

0

28

1

교안 158페이지 문의드립니다

0

34

2

코딩살구클럽 관련 건의사항

0

71

1

코살에 19942 다이어트 문제에 N의 범위가 빠져있슴니다

0

33

1

진행 방법 질문드립니다!

0

65

2

2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.

0

60

2

2주차 개념#12 트리 순회

0

29

2

백준사이트가 종료된다고 합니다.

0

291

2

백준 서비스 종료

9

904

1

sk 하이닉스 코테 대비

0

373

2

3-G 최댓값 질문

0

52

1

모듈러 연산 값이 10이 아닌 경우도 있지 않나요?

0

84

2

3-I 코드 질문드립니다.

0

63

2

3-N 질문 있습니다.

0

68

2

학습방법

0

103

2

4-H 질문 있습니다 (코드 리뷰)

0

67

2

코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.

0

174

2

2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.

0

70

2

2주차 개념 #4-2. 인접행렬 질문있습니다.

0

65

2

1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.

0

52

2

조합 재귀 풀이 확인 해주시면 감사하겠습니다.

0

69

2

함수별 시간복잡도

0

75

2

3-h 질문입니다.

0

50

1