Just Fighting

[HackerRank] The Coin Change Problem 본문

Algorithm/코딩테스트 연습

[HackerRank] The Coin Change Problem

yennle 2022. 3. 18. 23:42
728x90

https://www.hackerrank.com/challenges/coin-change/problem?isFullScreen=true 

 

The Coin Change Problem | HackerRank

Given a list of 'm' coin values, how many ways can you make change for 'n' units?

www.hackerrank.com

 

 

< 문제 설명 >

사진과 같이 n과 c가 주어졌을 때, c로 n을 만들 수 있는 경우의 가지 수를 구하는 문제이다.

3을 만들 수 있는 조합이 저 3개인 것이다.

 

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

백준의 이 문제와 똑같은 문제!

 

 

< 문제 이해 >

기본적인 dp문제인데 조금 헤맸다.

dp[i] += dp[i-x] 의 식을 이용해서 풀고자 하였다.

 

 

< 시행 착오 >

위의 식을 사용하기 위해서 for문을 두번 사용했어야 했다.

배열 c를 돌리는 for문과 n번 돌아가는 for문.

그러나 두 개의 순서가 중요했다.

처음에 n번 돌아가는 for문을 먼저 작성했다가 중복되는 것들이 다 나와버려서 당황했다.

중복되지 않도록하려면 배열 c의 for문을 먼저 돌리면 된다.

 

 

< 문제 풀이 >

def getWays(n, c):
    dp = [1] + [0]*n

    for coin in c:
        for i in range(coin, n + 1):
            dp[i] += dp[i - coin]
    
    return dp[n]

 

728x90

'Algorithm > 코딩테스트 연습' 카테고리의 다른 글

[프로그래머스] 프린터  (0) 2022.03.21
[프로그래머스] 순위  (0) 2022.03.20
[프로그래머스] 징검다리  (0) 2022.03.11
[프로그래머스] 도둑질  (0) 2022.03.10
[프로그래머스] 등굣길  (0) 2022.03.09
Comments