인프런 커뮤니티 질문&답변
3-5 연속된 자연수의 합
작성
·
155
0
문제를 직접 풀며, 강의에서 진행되었던 코드를 순서를 조금 변경하면
가독성있고, 조금 더 간결한 코딩을 완성할 수 있지 않을까 하여
강사님 확인을 받고싶어 남깁니다.
--강의 solution 메서드
public static int solution (int n) {
int answer = 0, sum=0, lt = 0;
int m = n/2+1;
int[] arr = new int[m];
for(int i =0; i<m; i++) arr[i] = i+1;
for(int rt = 0; rt<m; rt++) {
sum+= arr[rt];
if(sum == n) answer++;
while(sum>=n) {
sum-=arr[lt++];
if(sum==n) answer++;
}
}
return answer;
}
--학생 작성 solution 메서드
public static int mySolution (int n) {
int answer = 0, sum = 0, lt = 1;
for(int i =1 ; i<=n; i++) {
sum+=i;
while(sum>n) sum-=lt++;
if(sum==n) answer++;
if(i>(n/2)) break;
}
return answer;
}sum을 먼저 체크하여 lt를 차감 후 answer에 합산하는 순서가 조금 더 간결하지 않을까요?





