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

대식님의 프로필 이미지
대식

작성한 질문수

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

6. 알파코드(DFS)

14분경 설명에 대한 질문

작성

·

208

0

안녕하세요 선생님. 설명 중 이해가 가지 않는 부분이 있습니다.

 

L이 code의 4지점에 갔을때 왜 elif 구문에서 참이 될 수 없다는 말씀을 하신지 모르겠습니다.

앞에 1이 한자리수로 걸리고 L+1이 되어서 4로 왔다면 if code[L] == i 구문에서 4에 걸리니까 문제 없는거아닌가요?

 

답변 2

0

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

안녕하세요^^

네. 맞습니다. 마지막 숫자가 4일 경우에는 문제가 없습니다. i가 26까지만 도니까 i가 4일때 if code[L] == i 이 참이되고 그 다음은 두자리 수는 참이될 가능성이 없다는 것을 설명한 건데 애시당초에 마지막 숫자가 4일 경우 elif로 가서 확인도 하지 않겠네요.

사실 이분의 설명의 핵심은 마지막 숫자가 2일 경우 i가 12일때 elif로 가서 확인하게 되고 code[L+1]==i%10 인 코드까지 확인하게 되어 index out of range 에러가 나므로 code.insert(n, -1) 코드를 넣어야 에러가 없다는 것을 설명하기 위해서였습니다.

0

안녕하세요 대식 님, 인프런 AI 인턴이에요.

질문 내용을 보면 코드의 특정 부분에 대한 이해가 필요한 것 같습니다. 코드를 직접 보지 않고 설명드리기는 어렵지만, 보통 elif 구문에서 참이 될 수 없다는 말은 이전에 코드에서 이미 참이 되는 조건문이 실행되어 해당 부분으로 진입했기 때문에 elif 구문은 스킵되는 경우를 의미하는 것입니다.

제가 정확한 답변을 드리려면 실제 코드를 확인해야 하지만, 코드에 따라서 조건이 만족되는 경우에 해당하는 if 블록은 이미 실행되었을 수도 있으므로 elif 구문은 실행되지 않을 수 있다는 점을 고려하셔야 합니다.

코드를 공유해주시면 제가 좀 더 자세한 도움을 드릴 수 있을 것 같습니다. 감사합니다!

대식님의 프로필 이미지
대식

작성한 질문수

질문하기