본문 바로가기
코드문제풀이/JAVA

[자바] n보다 커질 때까지...

by 똥쟁이핑크 2023. 7. 4.

https://school.programmers.co.kr/learn/courses/30/lessons/181884

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 설명

정수 배열 numbers와 정수 n이 매개변수로 주어집니다. numbers의 원소를 앞에서부터 하나씩 더하다가 그 합이 n보다 커지는 순간 이때까지 더했던 원소들의 합을 return 하는 solution 함수를 작성해 주세요.

 

 

제한사항

  • 1 ≤ numbers의 길이 ≤ 100
  • 1 ≤ numbers의 원소 ≤ 100
  • 0 ≤ n < numbers의 모든 원소의 합

 

입출력 예

numbers n result
[34, 5, 71, 29, 100, 34] 123 139
[58, 44, 27, 10, 100] 139 239

 

 

나의 문제 풀이

1) 최대값을 구하기 위해 max라는 변수를 만들었다.

2) 배열의 index를 차례대로 돌면서 나온 값들을 max에 더해 준다.

3) n이 최소값이기 때문에 max를 for문이 시행 될때 값을 비교한다.

4) 최소값이 max값과 같거나 max값이 커지기 직전까지 for문이 시행된다.

5) 처음에는 max값과 n값이 같을 거라는 생각을 안하고 코드를 시행하였고 채점시에 오류가 많이 났다.

 

class Solution {
    public int solution(int[] numbers, int n) {
        int answer = 0;
        int max = 0;
        for (int i = 0; i < numbers.length; i++){
            if(max <= n){
                max += numbers[i];
                answer = max;
            } 
            else{
                answer = max;
            }
        }
        return answer;
    }
}