[프로그래머스] Summer/Winter Coding > 예산

박민주·2022년 2월 17일
0

Programmers

목록 보기
10/13

이번 문제는 문제를 보면서 메모장에 아래와 같은 로직을 적고
딱 그대로 코드를 작성해서 풀 수 있었다
처음 구상을 제대로 하면 빠르게 풀 수 있다는 걸 느꼈다

로직

  1. d를 오름차순 정렬
  2. d를 하나씩 조회
  3. budget에서 하나씩 빼보고 0보다 작아지면 break
  4. 0보다 작아지지 않으면 실제로 빼고 answer++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int solution(vector<int> d, int budget) {
    int answer = 0;
    
    sort(d.begin(), d.end());
    vector<int>::iterator iter;
    for(iter = d.begin(); iter != d.end(); iter++) {
        if(budget - *iter >= 0) {
            budget -= *iter;
            answer++;
        } else {
            break;
        }
    }
    return answer;
}
profile
Game Programmer

0개의 댓글