본문 바로가기
1-4. 코딩테스트 문제집(진행중)/PCCP(Lv1)

[PCCP] Lv1: 예산(12982) 해설

by cogito21_cpp 2024. 12. 25.
반응형

문제

- 문제 링크: 예산

 

해설

- 자료구조: 

- 시간복잡도: 

 

(풀이과정)

1) 

2) 

3) 

4) 

 

코드

(C언어)

solution 1)

더보기

solution 1

#include<>

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(C++)

solution 1)

더보기
#include<>

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(C#)

solution 1)

더보기
#include<>

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(Java)

solution 1)

- N: d의 길이

- Arrays.sort(d)의 시간 복잡도: O(NlogN)

- 반복문은 최악의 경우 모든 원소에 대해 반복하므로 O(NlogN)

- 최종 시간 복잡도: O(NlogN)

더보기
import java.util.Arrays;

class Solution {
    public int solution(int[] d, int budget) {
        Arrays.sort(d); // 배열 d를 오름차순으로 정렬
        int count = 0; // 지원할 수 있는 부서의 개수를 세는 변수
        
        for (int amount : d) {
            if (budget < amount) {
                break; // 남은 예산이 신청한 금액보다 작으면 더 이상 지원할 수 없으므로 종료
            }
            budget -= amount; // 예산에서 신청한 금액을 차감
            count++;
        }
        return budget >= 0 ? count : count - 1;
    }
}

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(Python)

solution 1)

- N: d의 길이

- d.sort(): O(NlogN)

- 반복문은 최악의 경우 모든 원소에 대해 반복: O(NlogN)

- 최종 시간 복잡도: O(NlogN)

더보기
def solution(d, budget):
    d.sort() # 배열 d를 오름차순으로 정렬
    count = 0 # 지원할 수 있는 부서의 개수를 세는 변수
    
    for amount in d:
        if budget < amount:
            break # 남은 예산이 신청한 금액보다 작으면 더 이상 지원할 수 없으므로 종료
        budget -= amount # 예산에서 신청한 금액을 차감
        count += 1
    return count if budget >= 0 else count - 1

solution 2)

더보기
import

solution 3)

더보기
import

 

(JavaScript)

solution 1)

- N: d의 길이

- d.sort(): O(NlogN)

- 반복문은 최악의 경우 모든 원소에 대해 반복하므로 O(NlogN)

- 최종 시간 복잡도: O(NlogN)

더보기
function solution(d, budget) {
    d.sort((a, b) => a - b); // 배열 d를 오름차순으로 정렬
    let count = 0; // 지원할 수 있는 부서의 개수를 세는 변수
    
    for (const amount of d) {
        if (budget < amount) {
            break; // 남은 예산이 신청한 금액보다 작으면 더 이상 지원할 수 없으므로 종료
        }
        
        budget -= amount; // 예산에서 신청한 금액을 차감
        count++; 
    }
    
    return budget >= 0 ? count : count - 1;
}

solution 2)

더보기
import

solution 3)

더보기
import

 

반응형