강의

멘토링

로드맵

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

siny7177님의 프로필 이미지
siny7177

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

5. 수의 합

while문 조건

작성

·

197

0

while lt <= rt :  ---> while True: 이렇게 해도 통과가 됩니다.

 생각해봤는데 lt <= rt  조건이 필요 없는것이 아닌지 궁금합니다.

답변 3

0

김태원님의 프로필 이미지
김태원
지식공유자

2중 for문이 돌았다는 것 자체가  제가 설명한 방법보다 시간이 더 걸리는  코드입니다. 작은 차이 같지만 데이터가 커지면 그 차이도 무시 못합니다. 제가 설명한 방법으로 짜보시고 스스로 비교 분석해보시기 바랍니다.

다른 사람의 질문에 답글형식으로 질문을 하면 우연히 발견하지 않는 이상 제가 알 수 가 없습니다.

0

5번 째 test case에서 시간 초과가 납니다. 알려주신 코드와 비슷한 논리로 움직이는 것 같은데 어떤 부분이 문제일까요? 

# 수들의 합
n, m = map(int, input().split())
list_ = list(map(int, input().split()))
cnt = 0
for i in range(n):
    sum_ = 0
    for j in range(i, n):
        sum_ += list_[j]
        if sum_ == m:
            cnt += 1
            break
        elif sum_ > m:
            break
print(cnt)

0

김태원님의 프로필 이미지
김태원
지식공유자

lt 값이 rt 값보다 커질 수 없는 코드였습니다.  lt<=rt 에 값에 관계없이 항상 break로 종료되는 코드였네요.

while True: 로 하는게 논리상 맞는 것 같습니다. 감사합니다.^^

영상은 새로 고쳐 올리도록 하겠습니다.

siny7177님의 프로필 이미지
siny7177

작성한 질문수

질문하기