https://school.programmers.co.kr/learn/courses/30/lessons/12982
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
Algorithm
최대 지원 부서 수를 도출해야 하므로, 정렬하여 가장 작은 수부터 더한다. budget을 초과하면 빼준다.
Python
def solution(d, budget):
sum_check = []
d.sort()
for e in d:
if sum(sum_check) + e > budget:
break
else:
sum_check.append(e)
return len(sum_check)
+) 다른 풀이
def solution(d, budget):
d.sort()
while budget < sum(d):
d.pop()
return len(d)
Java
class Solution {
public int solution(int[] d, int budget) {
int answer = 0;
int[] dept = Arrays.copyOf(d, d.length);
Arrays.sort(dept);
int sum = 0;
for(int idx = 0; idx<dept.length; idx++){
sum += dept[idx];
if(sum<=budget) answer++;
}
return answer;
}
}
+) 다른 풀이
import java.util.Arrays;
class Solution {
public int solution(int[] d, int budget) {
int answer = 0;
Arrays.sort(d);
for(int i = 0; i < d.length; i++) {
budget -= d[i];
if(budget<0) break;
answer++;
}
return answer;
}
}
'자료구조&알고리즘 > 프로그래머스' 카테고리의 다른 글
[Programmers] 영어 끝말잇기 (JAVA, PYTHON) (1) | 2023.11.03 |
---|---|
[Programmers] 소수 만들기 (JAVA, PYTHON) (0) | 2023.11.03 |
[Programmers] 할 일 목록 (JAVA, PYTHON) (0) | 2023.10.10 |
[Programmers] 5명씩 (JAVA, PYTHON) (0) | 2023.10.10 |
[Programmers] 홀수 vs 짝수 (JAVA, PYTHON) (1) | 2023.10.10 |