인프런 커뮤니티 질문&답변

jinii915님의 프로필 이미지
jinii915

작성한 질문수

세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)

BOJ 3085

제공해주신 문제 풀이가 시간초과가 되어 문의드립니다!

해결된 질문

작성

·

75

0

안녕하세요 선생님! 강의 잘 듣고 있습니다.

[실전 문제풀이1 : BOJ 3085 사탕 게임] 문제에서 선생님이 제공해주신 "풀이1-O(N^4)" 으로 python3 답을 제출했는데 시간 초과가 되는 걸로 나옵니다. 시간 복잡도가 O(N^4)인데 왜 시간 초과가 나는 것인지 궁금해서 문의드립니다!

답변 2

0

알리 Ally님의 프로필 이미지
알리 Ally
지식공유자

안녕하세요. jinii915님!

 

말씀해주신 문제는 백준에서 문제 풀이 제출시, Python3로 제출하시면서 시간초과가 나는걸로 보입니다.

Pypy3로 제출해주시면 정상적으로 정답처리 됩니다.

이와 관련한 자세한 내용은 '백준에 파이썬 코드를 제출할 때 주의할 점’ 강의에서 설명드리고 있으니 참고해주세요.

 

또 궁금하신 점 있으시면 언제든 질문 부탁드립니다.

감사합니다. :)

0

안녕하세요, 인프런 AI 인턴입니다.

jinii915님께서 제기하신 시간 초과 문제는 프로그래밍에서 흔히 마주치는 문제 중 하나입니다. 시간 초과의 주된 원인은 코드 실행 시간이 문제에서 정의한 시간 제한을 초과하기 때문에 발생합니다. [실전 문제풀이1 : BOJ 3085 사탕 게임]의 경우, 선생님이 제공해 주신 “풀이1-O(N^4)” 는 알고리즘의 복잡도가 높기 때문에, 입력 값(N)의 크기가 커질수록 실행 시간이 기하급수적으로 증가하여 문제의 시간 제한을 초과할 수 있습니다.

따라서 이러한 시간 초과 문제를 해결하기 위해서는 더 효율적인 알고리즘을 고안하거나, 기존 알고리즘의 성능을 개선하는 방법을 모색해야 합니다. 예를 들어, 다음과 같은 접근 방법을 고려해 볼 수 있습니다:

  1. 알고리즘 최적화: 알고리즘의 복잡도를 줄일 수 있는 방법을 모색합니다. 예를 들어, 불필요한 반복을 피하거나, 문제의 구조를 분석하여 더 효율적으로 문제를 해결할 수 있는 방법을 찾아보세요.

  2. 자료 구조 활용: 시간 복잡도를 낮추기 위해 적절한 자료 구조를 활용하는 것이 중요합니다. 적절한 자료 구조를 사용하면 알고리즘의 효율성을 높일 수 있습니다.

  3. 다른 풀이 방법 모색: 시간 초과를 해결할 수 있는 대안적인 풀이 방법을 찾아보세요. 문제를 해결할 수 있는 다른 접근 방식이 있을 수 있습니다.

이번 경우와 같은 복잡도가 높은 문제에 대해서는 “저.. 시간복잡도 관련 질문입니다.(로직 거의 비슷한 거 같은데, 시간초과가 나서요)” 게시글에서 제공하는 상세한 설명과 팁이 도움이 될 수 있습니다. 해당 답변에서는 시간 초과 문제 해결을 위한 일반적인 가이드라인과 입력 방법의 최적화, 불필요한 반복 제거 방법 등에 대해 설명하고 있습니다.

일반적으로 N^4와 같이 시간복잡도가 높은 알고리즘으로는 제한시간 내에 문제를 해결하기 어려운 경우가 많습니다. 따라서, 복잡도를 낮출 수 있는 다른 알고리즘이나 접근 방식을 고려해보는 것이 중요합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

jinii915님의 프로필 이미지
jinii915

작성한 질문수

질문하기