[JAVA 문제 풀이] 90. 연속된 수의 합

프로그래머스 (120923)
Stupefyee's avatar
Feb 18, 2025
[JAVA 문제 풀이] 90. 연속된 수의 합
notion image
 

내가 작성한 코드

  • 배열의 합에 집중함
    • class Solution { public int[] solution(int num, int total) { int[] answer = new int[num]; // 정답 배열 초기화 for(int i = 1; i <= num; i++) { answer[i-1] = i; } while (true) { int sum = Arrays.stream(answer).sum(); // 배열의 합 // 배열의 합이 total보다 작을때 배열의 모든 원소값을 1씩 증가 if (sum < total) { for(int i = 0; i < answer.length; i++) { answer[i]++; } continue; } // 배열의 합이 total보다 클때 배열의 모든 원소값을 1씩 감소 if (sum > total) { for(int i = 0; i < answer.length; i++) { answer[i]--; } continue; } return answer; } } }
       

다른 사람의 코드

  • 시작하는 숫자를 구하는 것이 관건
    • class Solution { public int[] solution(int num, int total) { int[] answer = new int[num]; int check = num * (num + 1) / 2; // num개의 연속된 정수의 합 int start = (total - check) / num + 1; // 시작 숫자 계산 for (int i = 0; i < answer.length; i++) { answer[i] = start + i; // 연속된 숫자 배열 생성 } return answer; } }
Share article

stupefyee