문제
프로그래머스 코딩테스트 연습 - 예산 (Level 1)
https://programmers.co.kr/learn/courses/30/lessons/12982
사용 알고리즘
- Greedy
풀이
greedy적 접근.
오름차순으로 정렬해서 budget을 넘기 전까지 누적해 더해가며 몇 개를 더했는지를 계산한다.
나의 코드
#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> d, int budget) {
int answer = 0, sum=0;
sort(d.begin(),d.end());
for(auto i:d){
if(i+sum>budget) break;
sum+=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;
}
728x90
'PS > Programmers' 카테고리의 다른 글
프로그래머스 코딩테스트 연습 - 같은 숫자는 싫어 (Level 1) (0) | 2021.06.26 |
---|---|
프로그래머스 코딩테스트 연습 - 제일 작은 수 제거하기 (Level 1) (0) | 2021.06.25 |
프로그래머스 코딩테스트 연습 - 가운데 글자 가져오기 (Level 1) (0) | 2021.06.22 |
프로그래머스 코딩테스트 연습 - 두 개 뽑아서 더하기 (Level 1) (0) | 2021.06.21 |
프로그래머스 코딩테스트 연습 - 폰켓몬 (Level 1) (0) | 2021.06.20 |