강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của doogy9974
doogy9974

câu hỏi đã được viết

Giới thiệu về giải bài toán bằng thuật toán Python (chuẩn bị cho bài kiểm tra viết mã)

채점기 Time Limit Exceeded 오류 문의

Viết

·

150

·

Đã chỉnh sửa

1

1.k번째 약수 문제부터 파이썬 코드를 채점기로 확인하면 Time Limit Exceeded 오류가 발생합니다.

강사님의 코드로 확인해도 같은 현상인데, 어떤 문제일까요?

 

* AA.py

import sys

# sys.stdin = open('input.txt', 'rt')

n, k = map(int, input().split())

cnt = 0

for i in range(1, n+1):

if n % i == 0:

cnt = cnt + 1

if cnt == k:

print(i)

break

else:

print(-1)

 

** Judge(Python).exe 실행 결과

Case #01 : Time Limit Exceeded

Case #02 : Time Limit Exceeded

Case #03 : Time Limit Exceeded

Case #04 : Time Limit Exceeded

Case #05 : Time Limit Exceeded

python코딩-테스트

Câu trả lời 2

0

codingcamp님의 프로필 이미지
codingcamp
Người chia sẻ kiến thức

안녕하세요^^

저는 위 코드를 제 컴퓨터에서 채점한 결과 모두 정상적으로 통과되었습니다.

import sys
# sys.stdin = open('input.txt', 'rt')
n, k = map(int, input().split())
cnt = 0
for i in range(1, n+1):

    if n % i == 0:

        cnt = cnt + 1

    if cnt == k:

        print(i)

        break
else:
    print(-1)

 

 

0

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

채점기에서 Time Limit Exceeded 오류가 발생하는 이유는 일반적으로 코드의 시간 복잡도가 문제의 입력 데이터에 비해 비효율적인 경우에 발생할 수 있습니다. 우선, 시간이 초과되는 상황을 해결하는 데 도움이 될 수 있는 방법을 제안드리겠습니다.

  1. 입출력 최적화: sys.stdin.readline을 사용하여 입력을 더 빠르게 처리할 수 있습니다.

    • input() 대신 sys.stdin.readline()을 사용해보세요.
  2. 불필요한 연산 제거: 코드의 효율성을 높이기 위해 필요한 부분만 실행하도록 코드를 최적화해야 합니다. 현재 코드에서는 모든 약수를 구하고 있으므로, 이 과정을 최대한 줄일 수 있는지 확인해보세요.

  3. 자연수가 매우 큰 경우: 만약 n이 매우 큰 값이라면 모든 약수를 검사하는 대신 다른 방법으로 접근할 수 있는지 고민해보세요.

현재 질문 주신 것과 관련된 기존 답변은 다음의 URL을 참고하시면 좋을 것 같습니다:

  • [자동채점문의드립니다]: 이 질문에서는 입력을 더 효율적으로 처리하기 위한 방법에 대해 다루고 있습니다.
  • [exit_code_1문제]: 다른 종류의 오류이지만, 코드의 작은 실수가 어떻게 문제를 일으킬 수 있는지를 보여줍니다.

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

Hình ảnh hồ sơ của doogy9974
doogy9974

câu hỏi đã được viết

Đặt câu hỏi