인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

jeong님의 프로필 이미지
jeong

작성한 질문수

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

6. 격자판 최대합

sum1과 sum2 초기화 과정에 대한 문의

작성

·

271

0

안녕하세요 선생님 명쾌한 강의를 해주셔서 항상 감사합니다.

다름이 아니오라 sum1과 sum2 초기화 과정에 대한 과정에 대해 질문드릴 사항이 한가지 있습니다.

사진에서 표기한 2)인 대각선을 위한 sum1과 sum2의 초기화 과정이 1)의 과정과 달리 for반복문 밖에 작성하는지궁금합니다. 실제로 대각선을 구하는 for안에 넣어보니 -1이 된 154가 출력되는 것을 확인할 수 있었습니다. 어떠한 이유때문에 155가 아닌 154출력 되었으며 어째서 for문 안이 아닌 밖에서 초기화 과정이 이루어지는지 궁금합니다. 

답변 2

1

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

안녕하세요^^ sum1과 sum2를 초기화하는 위치는 sum1과 sum2에 누적하는 for문이 돌기 전에 초기화하는 것으로 1)이나 2)가 다를게 없습니다. 1)은 j for 문이 sum1과 sum2에 누적을 하니 j for문이 돌기 전에 초기화 한 것이고 2)과정은 sum1과 sum2에 i for문이 누적을 하니 i for 문이 돌기 전에 초기화한 것입니다.

그리고 대각선을 구하는 for문 안에서 sum1과 sum2를 매번 초기화하면 한 개 더하고 0으로 초기화하고 한 개 더하고 다시 0으로 초기화하는 과정을 하므로 sum1과 sum2의 값이 최종적으로 마지막 한 개의 값만 가지게 됩니다. 그래서 원래는 왼쪽위에서 오른쪽으로 내려가는 대각선의 합 10+39+50+37+19=155값이 답이 되야 하는데 이 값이 제대로 계산되지 못하고 답으로는 3행의 합인  11+ 25 +50 +53 +15=154의 값이 답으로 출력되는 것입니다. -1되는 개념은 아닙니다. 

0

jeong님의 프로필 이미지
jeong
질문자

빠른답변 감사합니다 선생님.

설명을 들으니 바로 이해가 되었습니다! 

jeong님의 프로필 이미지
jeong

작성한 질문수

질문하기