강의

멘토링

커뮤니티

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

최예은님의 프로필 이미지
최예은

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

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에 합산하는 순서가 조금 더 간결하지 않을까요?

답변 1

0

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

안녕하세요^^

네. 저도 요즘 님 코드처럼 강의하고 있습니다.

최예은님의 프로필 이미지
최예은

작성한 질문수

질문하기