[그리디] 백준 실버4 11047번: 동전 0(Swift)

2023. 5. 19. 21:03·코테

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

Code
let NK = readLine()!.split(separator: " ").map { Int($0)! }

let N = NK[0]
var K = NK[1]
var coins: [Int] = []
var result = 0

for _ in 0..<N {
  let coin = Int(readLine()!)!
  if coin > K { break }
  coins.append(coin)
}

for i in 0..<coins.count {
  let coin = coins[coins.count - (1 + i)]
  let count = K / coin
  result += count
  K -= count * coin
}

print(result)
풀이과정

먼저 문제를 정리해 보자면,

첫 줄엔 동전의 종류와 동전으로 조합해야 할 K 값이 주어진다.

주어진 동전의 수는 무한대이며, 주어진 동전으로 K를 만드는데 필요한 동전의 최솟값을 출력하면 된다.

쉽게 접근하면, 최솟값이기 위해선 사용할 수 있는 동전 중 가장 큰 동전을 많이 사용하면 된다.

때문에 동전의 종류를 관리할 배열이 필요하다.

여기서 K보다 큰 동전은 사용할 일이 없음으로 K보다 작은 동전까지만 배열에 담는다.

그리고 반복문을 통해 배열의 가장 큰 동전부터 사용하여 K를 만들면 문제를 해결할 수 있다.

저작자표시 (새창열림)

'코테' 카테고리의 다른 글

[다이나믹 프로그래밍] 백준 실버3 2579번: 계단 오르기(Swift)  (1) 2023.05.22
[분할정복 + 재귀] 백준 실버1 1629번: 곱셈(Swift)  (0) 2023.05.22
[이분 탐색] 백준 실버3 2512번: 예산(Swift)  (0) 2023.05.18
[완전 탐색] 백준 브론즈1 10448번: 유레카 이론(Swift)  (0) 2023.05.18
[구현] 백준 실버5 20546번: 기적의 매매법(Swift)  (1) 2023.05.16
'코테' 카테고리의 다른 글
  • [다이나믹 프로그래밍] 백준 실버3 2579번: 계단 오르기(Swift)
  • [분할정복 + 재귀] 백준 실버1 1629번: 곱셈(Swift)
  • [이분 탐색] 백준 실버3 2512번: 예산(Swift)
  • [완전 탐색] 백준 브론즈1 10448번: 유레카 이론(Swift)
Esiwon
Esiwon
iOS 개발 블로그
  • Esiwon
    시원한 코드 기록
    Esiwon
  • 전체
    오늘
    어제
    • 분류 전체보기 (70)
      • iOS&Swift (24)
      • git & github (1)
      • 코테 (41)
      • 네부캠 회고 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    완전탐색
    코딩테스트
    알고리즘
    photoUI
    실버
    네부캠
    챌린지
    재귀
    코테
    동시성
    GCD
    비동기
    백준
    회고
    Race Condition
    탐색
    브루트포스 알고리즘
    Combine
    PhotoKit
    ios
    Swift
    그리디
    구현
    Property wrapper
    photos
    다이나믹 프로그래밍
    노드
    dfs
    이분탐색
    BFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Esiwon
[그리디] 백준 실버4 11047번: 동전 0(Swift)
상단으로

티스토리툴바