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

조승연님의 프로필 이미지

작성한 질문수

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

6. 응급실(큐)

안녕하세요 본 강의 코드 질문있습니다.

작성

·

248

1

본 강의에서는 3중 for문을 돌 때

다 n까지라고 정의해주셨는데 저렇게 구현한다면

n일때는 다 중복이 되어

    for i in range(n-2):

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

            for m in range(j+1,n):

                res.add(a[i]+a[j]+a[m])

-2, -1을 해주어야 맞는 것 아닌가 싶어 질문남깁니다.

항상 도움 많이 되고 있습니다 감사합니다.

답변 3

0

응급실(큐)문제가 맞나요?

0

조승연님의 프로필 이미지
조승연
질문자

거짓으로 판단되어 끝날거라고는 생각 못했는데 for문이 알아서 커트를 해주는군요.

친절한 답변 감사합니다 도움이 많이 되었어요!

응급실(큐)문제가 맞나요?

0

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

감사합니다. 

위 코드처럼 하는게 제일 좋겠네요.  다만 세개 다 n으로 해도 틀린 코드는 아닙니다. 즉 중복은 되지 않습니다.

만약 i가 n-1로 마지막 숫자라면 j는 바로 거짓되어 끝나버립니다. i가 n-2일때도 j for문은 들어가지만 m for문에서 바로 거짓되어 세개가 한 값으로 중복되는 일은 없습니다.

for i in range(5):
    for j in range(i+1, 5):
        for k in range(j+1, 5):
            print(i, j, k)

위 코드를 출력해보면 알 수 있을 겁니다.