[백준] 11047번 - 동전 0 (파이썬)

2022. 7. 24. 16:24·🎲 알고리즘 공부/백준

📝 문제 설명

>

준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.

동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.

 

입출력 예시

 

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

 

11047번: 동전 0

첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)

www.acmicpc.net


🎨 풀이

💡 전체 코드

import sys

n, k = map(int, sys.stdin.readline().split())
money = []
result = 0

for _ in range(n):
    money.append(int(input()))

for i in range(len(money)-1,-1,-1):
    result += k // money[i]
    k = k % money[i]

print(result)

> 핵심 : 큰 동전부터 차례대로 나눠주면 된다. (금액이 큰 동전을 많이 쓸수록 결과가 작아지기 때문)

 

🍦 코드 설명 (실행 순서대로 나열)

# main

n, k = map(int, sys.stdin.readline().split())
money = []
result = 0

1. n, k를 입력받는다.

 - n : 동전 종류 개수

 - k : 목표 금액

 

 * 그 외

   - money : 동전 종류 리스트

   - result : 결과 (필요한 동전 개수의 최솟값)

 

@ 첫 번째 for문 (3번~5번)        => 동전 종류 입력받기

for _ in range(n):
    money.append(int(input()))

3. for문을 돌린다. (n만큼)

4. 수를 입력받은 후 money 리스트에 추가해준다. 

 

 

@ 두 번째 for문 (3번~5번)        => 동전 종류 입력받기

for i in range(len(money)-1,-1,-1):
    result += k // money[i]
    k = k % money[i]

5. for문을 돌린다. (len(money)-1 부터 0까지 하나씩 내려가면서!)

 - 이게 가능한 이유는 본문에서 동전 입력을 오름차순으로 한다고 적혀있었기 때문이다.

6. result에 k // money[i] 값을 넣어준다.

 - 만약 money[i]가 k보다 크다면 어짜피 0을 더해줄 것이기 때문에 상관없다.

7. k에 k % money[i] 값을 넣어준다.

 - 이것도 6번과 같다. 어짜피 나눠준 게 없으면 나머지도 그대로 들어가니까 상관없다. (나눠지면 넣고 아니면 말고~ 이 느낌)

 

8. result를 출력한다.


​끝~

 

⭐ 느낀점

> 오늘도 열심히 적었다. 오늘은 좀 이해가 되지 않을까 싶긴 하다. 안되면 댓글로 피드백 부탁드림니다. 보는 사람 별로 없겠지만,,~ 감사합니다 ^ㅁ^

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

[백준] 10872번 - 팩토리얼 (파이썬)  (0) 2022.07.26
[백준] 1026번 - 보물 (파이썬)  (0) 2022.07.25
[백준] 1003번 - 피보나치 함수 (파이썬)  (0) 2022.07.23
[백준] 11399번 - ATM (파이썬)  (0) 2022.07.22
[백준] 2839번 - 설탕 배달 (파이썬)  (0) 2022.07.21
'🎲 알고리즘 공부/백준' 카테고리의 다른 글
  • [백준] 10872번 - 팩토리얼 (파이썬)
  • [백준] 1026번 - 보물 (파이썬)
  • [백준] 1003번 - 피보나치 함수 (파이썬)
  • [백준] 11399번 - ATM (파이썬)
듬듬
듬듬
  • 듬듬
    두드림
    듬듬
  • 전체
    오늘
    어제
    • 분류 전체보기 (267)
      • 📑 신입일기 (35)
      • 🎲 알고리즘 공부 (192)
        • 프로그래머스 (76)
        • 백준 (96)
        • 코드업 (19)
      • 📘 독서 (0)
      • 💌 일상 (12)
        • 일상 (5)
        • 기록 (7)
      • 📜 자격증 (2)
        • 정보처리기사 (2)
      • 학교 공부 (20)
        • ICT 개론 (14)
        • 리눅스 (6)
      • ChatGPT 랑 놀기 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    컨텐더스
    신입일기
    til
    프로그래머스
    충무로
    파이썬
    백준
    BOJ
    정처기
    피보나치수
    코린이
    nodejs
    스프링 부트
    코민이
    codeup
    오버워치
    정보처리기사
    찬양추천
    카카오
    오블완
    연습문제
    코드업
    행렬덧셈
    50문답
    티스토리챌린지
    폰켓몬
    코테
    일기
    스프링부트
    6월 목표
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
듬듬
[백준] 11047번 - 동전 0 (파이썬)
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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