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

융s님의 프로필 이미지
융s

작성한 질문수

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

5. 수의 합

이렇게 풀면 어디가 잘못된건지 잘모르겠습니다...

작성

·

171

0

n = 100
m = 100
s = '3 3 1 4 5 2 2 5 2 1 2 2 1 1 4 1 4 3 3 5 1 5 1 3 4 5 4 5 2 4 2 1 1 4 2 1 5 3 1 3 1 1 1 2 4 4 5 5 5 5 3 2 5 5 3 2 3 4 1 3 3 4 5 1 3 1 3 2 3 1 2 3 2 5 5 4 2 3 1 2 3 2 4 5 2 4 4 4 4 3 1 5 2 2 1 3 2 5 4 1'
a = list(map(int, s.split()))

lt = 0
rt = 1
cnt = 0

while(True):
    temp = sum(a[lt:rt])
    
    if lt >= n:
        break
    elif rt >= n:
        lt += 1
        rt = lt + 1

    elif temp < m:
        rt += 1

    elif temp >= m:
        if temp == m:
            cnt += 1
        lt += 1
        rt = lt + 1            
print(cnt)

혹시 이런방식으로 구현을 하면 어느부분에서 틀린걸까요ㅠㅠ

몇가지 케이스에선 정답이 나오는데 위의 케이스에선 오류가납니다

답변 3

0

융s님의 프로필 이미지
융s
질문자

elif rt >= n:
        lt += 1
        rt = lt + 1

여기서 elif문의 등호를 빼니 해결됐습니다

elif rt > n:
        lt += 1
        rt = lt + 1

0

융s님의 프로필 이미지
융s
질문자

아... 65, 100 케이스가 빠졌었네요 ㅠ 수정해보겠습니다~

0

융s님의 프로필 이미지
융s
질문자

3 38 100
4 40 100
5 44 100
7 45 100
14 48 100
16 49 100
19 52 100
20 53 100
24 56 100
28 62 100
30 64 100
32 65 100
33 66 100
39 73 100
42 74 100
46 77 100
49 83 100
50 84 100
53 87 100
55 89 100
58 92 100
60 94 100

해당코드에선 위처럼 (lt, rt, sum)총 22가지 방법이 나옵니다. 어느 케이스가 빠진건지 잘모르겠습니다ㅠ
융s님의 프로필 이미지
융s

작성한 질문수

질문하기