13414번 - 수강신청
map과 vector를 처음 써보는데 이렇게 쓰는게 맞나요?
자꾸 시간초과가 뜨네요 ㅠㅠ
어디부분이 시간이 많이 차지하는지 모르겠네요.
코드는 아래와 같습니다.
고수님들의 조언 부탁드리겠습니다.
map과 vector 사용법은 잘못되지는 않았습니다만...
작성하신 프로그램의 시간복잡도는 O(n log n)입니다.
하지만 이 문제를 시간초과 없이 풀기 위해서는 O(n) 알고리즘이 필요합니다.
우선 std::map은 삽입, 삭제가 O(log n)에 이루어지기는 하나 매우 느리게 작동하고요.
위 코드에서는 특히 string형을 key로 사용해서 더 오래 걸리는 것 같습니다.
저는 입력값이 8자리 정수임을 착안해서 key를 int형으로 선언했습니다. 그러면 O(n log n)으로도 통과하실 수 있을 겁니다.
댓글 달아주신분들 너무 감사합니다!
출력만 바꿨을 뿐인데 해결됐습니다.
앞으로 cin cout은 잘 안써야겠어요.
O(n)알고리즘 궁금합니다 ㅠㅠ map을 안써야 되는거죠?
감사합니다 꼭 공부해보겠습니다
일단은 이렇게 풀었습니다. 200ms가 나오네요
댓글을 작성하려면 로그인해야 합니다.
DryType 6년 전
map과 vector를 처음 써보는데 이렇게 쓰는게 맞나요?
자꾸 시간초과가 뜨네요 ㅠㅠ
어디부분이 시간이 많이 차지하는지 모르겠네요.
코드는 아래와 같습니다.
고수님들의 조언 부탁드리겠습니다.