콘솔창 & 윈도우창/코딩 테스트

프로그래머스 LV.1 예산

뽀또치즈맛 2024. 11. 9. 16:13

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

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 
단순히 현재 예산에서 최대한 뽑아 낼 수 있는 지원 가능한 부서를 세기 위해서
vector의 sort를 이용했다.
 
<내가 통과한 코드>

#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> d, int budget) {
    int answer = 0;

    sort(d.begin(), d.end());

    for (int i = 0; i < d.size(); i++) {
        if (budget < d[i]) break;
        budget -= d[i];
        answer++;
    }

    return answer;
}

 
 
남이 작성한 코드

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int solution(vector<int> d, int budget) {
    sort(d.begin(), d.end());
    int i;
    for (i = 0; (budget=budget-d[i]) >= 0 && i < d.size(); i++) ;
    return i;
}

 
 
남의 코드를 보니, for문의 조건 문을 효율적으로 잘 쓴것이 보였다.
나도 앞으로 저렇게 for문의 조건문을 잘 써야겠다.