코딩테스트/프로그래머스

[프로그래머스] n보다 커질 때까지 더하기

블로그 주인장 2023. 8. 12.


[ 목차 ]

    📢 문제 출처

     

    프로그래머스

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

    programmers.co.kr


    📢 문제 설명

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

    📢 입출력 예시

    • 입출력 예 #1
    • (1) 예제 1번의 numbers를 문제 설명대로 더해가는 과정을 나타내면 다음의 표와 같습니다.
    • 입출력 예 #2
    • (1) 예제 2번의 numbers의 마지막 원소 전까지의 원소를 sum에 더하면 139입니다.
    • (2) 139는 n 값인 139보다 크지 않고 마지막 원소인 100을 더하면 139보다 커지므로 239를 return 합니다.

    📢 풀이

    class Solution {
        public int solution(int[] numbers, int n) {
            int answer = 0;
            
            for(int i : numbers){
                if(answer <= n){
                    answer += i;               
                }
            }
            return answer;
        }
    }
    • numbers의 원소를 앞에서부터 하나씩 더하고 그 합이 n보다 커지는 순간까지의 값을 더해서 도출해야한다.
    • for-each문을 써서, int i 에 numbers의 배열의 인덱스를 반복한다.
    • 마지막 원소의 값까지 더했을 때 n보다 커야하기 때문에 <= 부등호를 사용한다.
    반응형

    댓글