jayb100   4년 전

안녕하세요! 2231번 부분합 문제 질문드립니다! 

아래에 코드는 우선 부분합을 계산하는 함수를 만들어서 결과값이 주어진 숫자와 같으면 출력하는 순서로 진행하였습니다.

즉, 주어진 숫자가 m일 경우 1부터 m 사이를 연산하며 부분합이 주어진 m 일 경우 출력하고 반복을 정지하는 구조로 진행하였습니다.

또 마지막 반복에서도 생성자가 되지 않는다면 생성자가 없는 것이므로 0을 출력했습니다.

문제 안의 예시, 주어진 예시 모두 맞는데 출력하면 틀리다고 나옵니다..

혼자 공부하다보니 아무리 고민해도 어떤 부분이 틀린건지 알기가 어렵네요 ㅠ

틀린부분도 좋고 혹시 코드 자체에 피드백 해주실 부분 해주시면 정말 정말 감사합니다!

고견 부탁드려요! 

djm03178   4년 전

1을 넣으면 아무것도 출력되지 않습니다.

jayb100   4년 전

와... 감사합니다.. 코드 (1, m+1) 과 i == m 으로 각각 수정했더니 바로 통과되네요.. 어떻게 바로 한번에 그걸 보시죠? ㅠㅠ 진짜 감사합니다 ㅠㅠ

wider93   4년 전

입력이 1일 때 아무 것도 출력하지 않습니다.

코드 자체에 대한 피드백이기도 하니, 그냥 말씀을 드리자면 마지막 루프는 아래와 같이 바꾸는 것이 좋습니다.

wider93   4년 전

앗 늦었네요..ㅋㅋ

jayb100   4년 전

아니에요!! 감사합니다 ㅎㅎ 혹시 마지막 루프가 바뀐것이 아니라 위에 def를 바꿔주신 것 맞나요? 혹시 어떤 차이가 있을까요? ㅎㅎ 속도차이가 생기나요? 특정 부분에서?

wider93   4년 전

함수 안도 바꾸긴 했습니다. list 선언을 하지 않고 바로 계산한 것입니다.

말하려던 포인트는 11번 줄입니다. 원래 for 문 안에 elif 문으로 들어가 있던 조건이지만, 사실상 포문이 다 끝날 때까지 답이 없으면 처리하라는 의미이므로 

따로 빼서 else문으로 처리하는 것이 보기도 좋고 조건문 횟수도 적습니다.

jayb100   4년 전

오 감사합니다! 사실 저렇게 되는줄 몰랐어요.. 저는 if랑 쌍이어야되서 for문 안에 들어가야하는줄 알았거든요 ㅠ 저렇게 그냥 단독으로도 쓸수 있는건가요? 들여쓰기가 잘못된건 아니죠?!

댓글을 작성하려면 로그인해야 합니다.