[백준`G5] 2294 - 동전 2 (Python)

2024. 3. 22. 02:33· 알고리즘/백준
목차
  1. 문제 설명
  2. 문제 설명
728x90

문제 설명

https://www.acmicpc.net/problem/2294

 

2294번: 동전 2

첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주어

www.acmicpc.net

 

성능 요약

메모리: 31120 KB, 시간: 288 ms

 

분류

다이나믹 프로그래밍

 

제출 일자

2024년 3월 22일 02:24:34

 

문제 설명

n가지 종류의 동전이 있다. 이 동전들을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그러면서 동전의 개수가 최소가 되도록 하려고 한다. 각각의 동전은 몇 개라도 사용할 수 있다.

 

입력

첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주어질 수도 있다.

 

출력

첫째 줄에 사용한 동전의 최소 개수를 출력한다. 불가능한 경우에는 -1을 출력한다.

 


문제 설명

DP의 가장 기본인 문제

이 문제를 안 풀었으면 DP를 안다고 할 수 없음(?)

알고리즘 수업 들었을 당시에 과제로 했었는데 너무 오래 전이라 다시 풀어봤다

DP 문제를 몇 번 풀어보니 점화식 생각하는 게 조금 수월해진 느낌...?

 

점화식은 min(dp[i - coin] + 1) 이다.

동전들을 탐색하며 동전 조합들을 저장하고, 그 중 가장 개수가 작은 것을 dp에 저장했다.

조건에 ' 가치가 같은 동전이 여러 번 주어질 수도 있다.' 라는 말이 있길래 동전들의 종류는 set으로 선언한 후 add했다.

n, k = list(map(int, input().split()))
coin = set()
for _ in range(n):
coin.add(int(input()))
dp = [0] * (k+1)
for i in range(1, k+1):
temp = []
for c in coin:
if i >= c and dp[i-c] != -1:
temp.append(dp[i-c] + 1)
if not temp:
dp[i] = -1
else:
dp[i] = min(temp)
print(dp)
728x90
저작자표시 (새창열림)

'알고리즘 > 백준' 카테고리의 다른 글

[백준`S1] 1931 - 회의실 배정 (Python)  (3) 2024.03.24
[백준`G3] 2638 - 치즈 (Python)  (0) 2024.03.22
[백준`S1] 14888 - 연산자 끼워넣기 (Python)  (2) 2024.03.22
[백준`G4] 2636 - 치즈 (Python)  (3) 2024.03.14
[백준`G5] 7569 - 토마토 (Python)  (0) 2024.03.14
  1. 문제 설명
  2. 문제 설명
'알고리즘/백준' 카테고리의 다른 글
  • [백준`S1] 1931 - 회의실 배정 (Python)
  • [백준`G3] 2638 - 치즈 (Python)
  • [백준`S1] 14888 - 연산자 끼워넣기 (Python)
  • [백준`G4] 2636 - 치즈 (Python)
셰욘
셰욘
셰욘
seiyeon
셰욘
전체
오늘
어제
  • 분류 전체보기 (176)
    • 알고리즘 (46)
      • 프로그래머스 (2)
      • 백준 (37)
      • 문제 유형 (7)
    • CS (41)
      • Linux (6)
      • DB (15)
      • 자료구조 (3)
      • OOP (2)
      • 아키텍처 (0)
    • BE (42)
      • Java (9)
      • Spring Boot (32)
    • FE (6)
      • Next.js (1)
      • JavaScript (5)
      • Vue.js (7)
      • Web (0)
    • 배포 (5)
    • 회고 (19)
      • BEYOND SW 캠프 (19)
    • 기타 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 블로그 관리

공지사항

인기 글

태그

  • 자료구조
  • 오블완
  • Java
  • Gateway
  • 티스토리챌린지
  • 구현
  • js
  • be
  • spring boot
  • fe
  • cs
  • 백트래킹
  • 백준
  • vue
  • 리눅스
  • db
  • 네트워크
  • dfs
  • 트리
  • 프로그래머스
  • 알고리즘
  • 실습
  • bfs
  • DP
  • 우선순위 큐
  • AWS
  • 그리디
  • 회고
  • web
  • 주간회고

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.v4.2.1
셰욘
[백준`G5] 2294 - 동전 2 (Python)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.