[ 백준 25496번 ] 장신구 명장 임스

2023. 4. 15. 16:25·Algorithm/문제풀이

1. 문제

 

25496번: 장신구 명장 임스

첫 번째 줄에 정수 $P$와 정수 $N$이 공백으로 구분되어 주어진다. ($1 \le P \le 200$, $1 \le N \le 1\,000$) 두 번째 줄에는 정수 $A_1, A_2, \dots, A_N$이 공백으로 구분되어 주어진다. ($1 \le A_i \le 200$)

www.acmicpc.net

 

2. 풀이

욕심쟁이 알고리즘(Greedy Algorithm)을 통해서 풀이할 수 있는 문제로, 남아 있는 피로도를 어떻게 하면 가장 효과적으로 사용할 수 있을 것인가를 해결하는 것이다.

 

장신구를 제작하는데 드는 피로도가 작은 것을 최대한 먼저 제작한다면, 다른 장신구를 제작할 수 있는 문제로 분할할 수 있다. 따라서 입력받은 피로도를 작은 순서로 정렬하여, 순차적으로 카운트해주면 끝!

 

중요한 것은 피로도가 190인 상황에서 12의 피로도가 필요한 장신구를 제작할 수 있다는 점이다. 따라서 장신구를 제작할 때, 남은 피로도보다 소모되는 피로도가 작거나 같은 조건을 추가해서는 안된다.

 

3. 소스코드

더보기
public class Main {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        StringTokenizer st = new StringTokenizer(br.readLine());
        int P = Integer.parseInt(st.nextToken());
        int N = Integer.parseInt(st.nextToken());

        st = new StringTokenizer(br.readLine());
        PriorityQueue<Integer> pq = new PriorityQueue<>();
        while (N-- > 0) {
            pq.add(Integer.parseInt(st.nextToken()));
        }

        int left = 200 - P;
        int cnt = 0;
        while (left > 0 && !pq.isEmpty()) {
            left -= pq.poll();
            cnt++;
        }

        bw.write(cnt + "");
        bw.close();
        br.close();
    }

}
반응형
저작자표시 비영리 변경금지 (새창열림)

'Algorithm > 문제풀이' 카테고리의 다른 글

[ 백준 2635번 ] 수 이어가기  (0) 2025.11.09
[ 백준 11366번 ] Tons of Orcs, no Fibbin’  (0) 2025.11.08
[ 백준 4796번 ] 캠핑  (1) 2023.03.13
[ 백준 25513번 ] 빠른 오름차순 숫자 탐색  (0) 2023.03.12
[ 백준 12887번 ] 경로 게임  (1) 2023.03.12
'Algorithm/문제풀이' 카테고리의 다른 글
  • [ 백준 2635번 ] 수 이어가기
  • [ 백준 11366번 ] Tons of Orcs, no Fibbin’
  • [ 백준 4796번 ] 캠핑
  • [ 백준 25513번 ] 빠른 오름차순 숫자 탐색
갈닉
갈닉
중요한 건 엔지니어가 되겠다는 마음. 근데 이제 인문학을 곁들인.
    반응형
  • 갈닉
    KwanIk Devlog
    갈닉
  • 전체
    오늘
    어제
    • 분류 전체보기 (53)
      • Algorithm (41)
        • 알고리즘 개요 (8)
        • 문제풀이 (33)
      • Language (2)
        • Java (1)
        • Javascript (0)
        • Go (0)
        • Rust (1)
      • Framework (0)
        • Spring (0)
        • Spring Security (0)
        • Spring JPA (0)
      • Computer Science (1)
        • 프로그래밍 언어 (0)
        • 자료구조 (1)
        • 보안 (0)
      • DevOps (1)
        • MSA (0)
        • TDD (1)
        • DDD (0)
      • 개발서적 (3)
        • 오브젝트 (3)
      • Life (5)
        • 생각생각 (4)
        • 회고록 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

    • My Github
  • 공지사항

  • 인기 글

  • 태그

    객체지향
    알고리즘
    DP
    구현
    Algorithm
    bitmask
    깊이우선탐색
    비트마스크
    boj
    greedy
    백트래킹
    BruteForce
    시뮬레이션
    오브젝트
    BFS
    욕심쟁이알고리즘
    java
    백준
    너비우선탐색
    backtracking
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
갈닉
[ 백준 25496번 ] 장신구 명장 임스
상단으로

티스토리툴바