dev/algorithm
BOJ / 17212๋ฒ / ๋ฌ๋๋ผ ํ ๋ผ๋ฅผ ์ํ ๊ตฌ๋งค๋๊ธ ์ง๋ถ ๋์ฐ๋ฏธ [Go][Python3]
crscnt
2021. 3. 10. 21:00
๐ฉ๐ป๐ป ๋ฌธ์
17212๋ฒ: ๋ฌ๋๋ผ ํ ๋ผ๋ฅผ ์ํ ๊ตฌ๋งค๋๊ธ ์ง๋ถ ๋์ฐ๋ฏธ
๋ฌ๋๋ผ ํ ๋ผ๋ค์ด ์ฌ์ฉํ๋ ํํ๋ ๋์ ๋ฟ์ด๋ค. ๋์ ์ ์ข ๋ฅ๋ 1์, 2์, 5์, 7์ ์ด๋ ๊ฒ 4์ข ๋ฅ๊ฐ ์๋ค. ๋ฌผ๊ฑด์ ์ฌ๊ณ ๋์ ์ผ๋ก ๊ณ์ฐ์ ํ๋๋ฐ ๋์ ์ ๊ฐ์๊ฐ ์ต์๊ฐ ๋๋๋ก ์ง๋ถํ์ง ์๋ ๊ฒ์
www.acmicpc.net
โ๐ป ํ์ด
๐จ Go
// https://www.acmicpc.net/problem/17212
package main
import (
"bufio"
"fmt"
"os"
)
var (
dp []int
coins = []int{7, 5, 2, 1}
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var n int
fmt.Fscanln(reader, &n)
dp = make([]int, n+1)
for i := 1; i < n+1; i++ {
dp[i] = 100000
}
for i := 1; i < n+1; i++ {
for _, coin := range coins {
if i-coin >= 0 && dp[i-coin]+1 < dp[i] {
dp[i] = dp[i-coin] + 1
}
}
}
fmt.Fprintln(writer, dp[n])
}
๐จ Python3
# https://www.acmicpc.net/problem/17212
import sys
dp = []
coins = [7, 5, 2, 1]
if __name__ == "__main__":
n = int(sys.stdin.readline())
dp = [100000 for _ in range(n+1)]
dp[0] = 0
for i in range(1, n+1):
for coin in coins:
if i-coin >= 0 and dp[i-coin]+1 < dp[i]:
dp[i] = dp[i-coin] + 1
print(dp[n])
728x90