티스토리 뷰
SMALL
오늘의 문제
https://www.acmicpc.net/problem/11047
몇 년 만에 파이썬으로 풀어봤습니다. 그래서 아주 쉬운 문제로...
진짜 input() 빼고 다 까먹어서 문법 검색하며 풀었습니다.
내 풀이
N, K = map(int, input().split())
Ai = []
answer = 0
for i in range(0, N):
Ai.append(int(input()))
Ai.reverse() # 오름차순 -> 내림차순으로 변경
for a in Ai:
if K == 0: # 0이면 끝
break
if a <= K: # K보다 작거나 같은 동전만 취급
answer += K // a # 몫만큼 개수 카운트
K %= a # 나머지만 가지고 다음 턴으로
print(answer)
쉽지만 간단히 설명을 붙이자면
해당 문제는 그리디 알고리즘으로 분류되어 있는데,
# 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.
# -> 동전 개수가 최소가 되려면 최대한 가치가 큰 동전을 많이 사용해야겠다는 걸 알 수 있음.
뭐 이 부분 때문에 그러지 않나 싶습니다.
동전 개수를 최소로 만들기 위해 현재 가장 가치가 높은 동전을 우선 선택합니다. 그러기 위해 reverse 함수를 통해 오름차순으로 입력받은 값을 다시 내림차로 바꿔서 풀었습니다.
파이썬으로도 금세 다시 잘할 수 있게 응원해주십쇼.
감사합니다!
LIST
'Algorithm' 카테고리의 다른 글
백준 1406번: 에디터 - Python 풀이 (0) | 2025.01.14 |
---|---|
프로그래머스 스택/큐: 기능개발 - Python 풀이 (0) | 2025.01.13 |
백준 1463번: 1로 만들기 - Swift 풀이 (0) | 2024.12.05 |
백준 1654번: 랜선 자르기 - Swift 풀이 (0) | 2024.11.10 |
백준 18870번: 좌표압축 - Swift 풀이 (0) | 2024.05.08 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Python
- 큐
- 코테
- 코딩테스트
- BFS
- ios
- 정렬
- 자료구조
- ios앱개발
- swea
- 알고리즘
- 투포인터
- 다이나믹프로그래밍
- 구현
- 스택
- 그리디
- 백트래킹
- 힙
- Baekjoon
- dp
- 이분탐색
- Swift로백준풀기
- 우선순위큐
- SQL
- 백준
- 코테준비
- Programmers
- 프로그래머스
- Swift
- MySQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함