๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 16922_๋กœ๋งˆ ์ˆซ์ž ๋งŒ๋“ค๊ธฐ

๋ฟŒ์•ผ._. 2021. 10. 6. 11:27

Silver III

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/16922)

<๋กœ๋งˆ ์ˆซ์ž ๋งŒ๋“ค๊ธฐ>

๋ฌธ์ œ 

 

๋กœ๋งˆ ์ˆซ์ž์—์„œ๋Š” ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ I, V, X, L์„ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ ๋ฌธ์ž๋Š” 1, 5, 10, 50์„ ์˜๋ฏธํ•˜๊ณ ,
์ด ๋ฌธ์ œ์—์„œ ๋‹ค๋ฅธ ๋ฌธ์ž๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
ํ•˜๋‚˜ ๋˜๋Š” ๊ทธ ์ด์ƒ์˜ ๋ฌธ์ž๋ฅผ ์ด์šฉํ•ด์„œ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ž์—ด์ด ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์€,
๊ฐ ๋ฌธ์ž๊ฐ€ ์˜๋ฏธํ•˜๋Š” ์ˆ˜๋ฅผ ๋ชจ๋‘ ํ•ฉํ•œ ๊ฐ’์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, XXXV๋Š” 35, IXI๋Š” 12๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
์‹ค์ œ ๋กœ๋งˆ ์ˆซ์ž์—์„œ๋Š” ๋ฌธ์ž์˜ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜์ง€๋งŒ, ์ด ๋ฌธ์ œ์—์„œ๋Š” ์ˆœ์„œ๋Š” ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, ์‹ค์ œ ๋กœ๋งˆ ์ˆซ์ž์—์„œ IX๋Š” 9๋ฅผ ์˜๋ฏธํ•˜์ง€๋งŒ, ์ด ๋ฌธ์ œ์—์„œ๋Š” 11์„ ์˜๋ฏธํ•œ๋‹ค.
๋กœ๋งˆ ์ˆซ์ž๋ฅผ N๊ฐœ ์‚ฌ์šฉํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•ด๋ณด์ž.

 

์ž…๋ ฅ

 

์ฒซ์งธ ์ค„์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜ N (1 ≤ N ≤ 20)์ด ์ฃผ์–ด์ง„๋‹ค.

 

์ถœ๋ ฅ 

 

์ฒซ์งธ ์ค„์— ๋กœ๋งˆ ์ˆซ์ž N๊ฐœ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

๋ฌธ์ œ ํ’€์ด

   - my solution

import sys
from itertools import combinations_with_replacement # ์ค‘๋ณต ์กฐํ•ฉ

if __name__=='__main__':
    n=int(sys.stdin.readline().strip())

    num=[1,5,10,50]
    arr=set() # ์„œ๋กœ ๋‹ค๋ฅธ ์ˆ˜ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด set ์„ ์–ธ

    for i in combinations_with_replacement(num, n):
        arr.add(sum(list(i)))

    print(len(arr)) # ๊ธธ์ด ์ถœ๋ ฅ

 

๋งจ ์ฒ˜์Œ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ ํ›„ ๋นผ๋จน์€ ์กฐ๊ฑด์€ "๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ˆ˜์˜ ๊ฐœ์ˆ˜"๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.

 

  • ์ด ๋ฌธ์ œ์—์„œ ์ˆœ์„œ๋Š” ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์œผ๋ฏ€๋กœ ์ค‘๋ณต ์กฐํ•ฉ์„ ์ด์šฉํ•œ๋‹ค.
  • ์„œ๋กœ ๋‹ค๋ฅธ ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ count ํ•˜๊ธฐ ์œ„ํ•ด set์„ ์ด์šฉํ•œ๋‹ค.
  • ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์ตœ์ข… set์˜ ๊ธธ์ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์ƒ๊ฐ๐Ÿค”

 

์ค‘๋ณต ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ผ ์ฐพ์•„๋ดค๋”๋‹ˆ python์— ์กฐํ•ฉํ˜• itertools๊ฐ€ ์žˆ์–ด ํ™œ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

*๋‹ค์Œ๋ฒˆ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์กฐํ•ฉ๊ณผ ์ˆœ์—ด์„ ๊ตฌํ˜„ํ•ด๋ณด๋Š” ๊ฒƒ์„ ๊ณต๋ถ€ํ•ด๋ด์•ผ๊ฒ ๋‹ค.