[그리디] 백준 실버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)
  • 블로그 메뉴

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

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바