Dev.Beth
πŸπŸ’»πŸ
Dev.Beth
전체 방문자
였늘
μ–΄μ œ
  • λΆ„λ₯˜ 전체보기 (175)
    • πŸ€” PS(Problem Solving) (119)
      • λ°±μ€€(BOJ) (59)
      • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ (47)
      • Leet, ꡬ름 (6)
      • μ½”ν…Œ (7)
    • πŸ› οΈ 툴, κ·Έμ™Έ (10)
    • πŸ•·οΈ μ—λŸ¬, 버그 (15)
    • ✍️ 이둠 (30)
      • 이둠, 섀계 (3)
      • λ””μžμΈνŒ¨ν„΄ (1)
      • 자료ꡬ쑰, μ•Œκ³ λ¦¬μ¦˜ (13)
      • λ„€νŠΈμ›Œν¬, λ°μ΄ν„°λ² μ΄μŠ€ (11)
      • κ°œλ°œμ„œ (2)

λΈ”λ‘œκ·Έ 메뉴

  • WRITE
  • ADMIN

곡지사항

  • 🍡 PS challenge

인기 κΈ€

νƒœκ·Έ

  • λ°±μ€€ 1520 c++
  • 2294
  • Retrofit ν•œκΈ€κΉ¨μ§
  • λ°±μ€€ 1509 c++
  • boj 2293
  • 1509 c++
  • λ°±μ€€
  • 2294 λ°±μ€€ c++
  • λ°±μ€€ c++ 2293
  • boj 1509 c++
  • λ°±μ€€ 2240
  • 1520 c++
  • Retrofit ν•œκΈ€ 깨짐
  • λ°±μ€€ 2294 c++
  • κ°€λŸ­μ‹œ κ°•μ œ μž¬λΆ€νŒ…
  • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ λ„€νŠΈμ›Œν¬ java
  • λ°±μ€€ c++
  • λ°±μ€€ 2294
  • c++ 2294
  • 2293 c++
  • Retrofit Post ν•œκΈ€
  • κ°€λŸ­μ‹œ λ¦¬λΆ€νŒ…
  • κ°€λŸ­μ‹œ 멈좀
  • μ‚Όμ„± ν™”λ©΄ 멈좀
  • κ°€λŸ­μ‹œ μž¬λΆ€νŒ…
  • κ°€λŸ­μ‹œ 검은화면 μž¬λΆ€νŒ…
  • κ°€λŸ­μ‹œ 검은화면
  • 2294 c++
  • λ°±μ€€ 2293
  • 2293

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
Dev.Beth

πŸπŸ’»πŸ

πŸ€” PS(Problem Solving)/λ°±μ€€(BOJ)

[λ°±μ€€/c++] 2293번 - 동전1

2019. 8. 11. 14:37
λ°˜μ‘ν˜•

문제

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


문제

nκ°€μ§€ μ’…λ₯˜μ˜ 동전이 μžˆλ‹€. 각각의 동전이 λ‚˜νƒ€λ‚΄λŠ” κ°€μΉ˜λŠ” λ‹€λ₯΄λ‹€. 이 동전을 μ λ‹Ήνžˆ μ‚¬μš©ν•΄μ„œ, κ·Έ κ°€μΉ˜μ˜ 합이 k원이 λ˜λ„λ‘ ν•˜κ³  μ‹Άλ‹€. κ·Έ 경우의 수λ₯Ό κ΅¬ν•˜μ‹œμ˜€. 각각의 동전은 λͺ‡ κ°œλΌλ„ μ‚¬μš©ν•  수 μžˆλ‹€.

μ‚¬μš©ν•œ λ™μ „μ˜ ꡬ성이 같은데, μˆœμ„œλ§Œ λ‹€λ₯Έ 것은 같은 κ²½μš°μ΄λ‹€.


μž…λ ₯

첫째 쀄에 n, kκ°€ μ£Όμ–΄μ§„λ‹€. (1 ≀ n ≀ 100, 1 ≀ k ≀ 10,000) λ‹€μŒ n개의 μ€„μ—λŠ” 각각의 λ™μ „μ˜ κ°€μΉ˜κ°€ μ£Όμ–΄μ§„λ‹€. λ™μ „μ˜ κ°€μΉ˜λŠ” 100,000보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄λ‹€.


좜λ ₯

첫째 쀄에 경우의 수λ₯Ό 좜λ ₯ν•œλ‹€. 경우의 μˆ˜λŠ” $2^{31}$보닀 μž‘λ‹€.


풀이과정


1.κ·œμΉ™

  • dpμ΄λ―€λ‘œ 점화식과 λ©”λͺ¨μ΄μ œμ΄μ…˜μ„ μ΄μš©ν•©λ‹ˆλ‹€.
  • 경우의 μˆ˜λŠ” μ΅œλŒ€ $2^{31}$ μž…λ‹ˆλ‹€.
  • nκ°€μ§€ μ’…λ₯˜μ˜ 동전을 μ‚¬μš©ν•΄μ„œ κ·Έ κ°€μΉ˜μ˜ 합이 kκ°€ λ˜λ„λ‘ ν•©λ‹ˆλ‹€. 각각의 동전은 λͺ‡κ°œλΌλ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


2.μˆœμ„œ

경우의 μˆ˜λŠ” μ΅œλŒ€ $2^{31}$ μ΄λ―€λ‘œ, -2,147,483,648 ~ 2,147,438,647의 λ²”μœ„λ₯Ό κ°–λŠ” intλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

κ°€μΉ˜(k)λŠ” 4, λ™μ „μ˜ μ’…λ₯˜(n)λŠ” 1,2,3인 경우λ₯Ό λ©”λͺ¨μ΄μ œμ΄μ…˜μœΌλ‘œ μƒκ°ν•΄λ³΄λ©΄,


 

coin[1]=1

coin[2]=2

coin[3]=3 

 μ΄ 경우의 수

1

 1 (1κ°€μ§€)

0

0

 1κ°€μ§€, d[1]=1

2

 1+1 (1κ°€μ§€)

2 (1κ°€μ§€)

0

 2κ°€μ§€, d[2]=2

3

 1+1+1 (1κ°€μ§€)

2+1 (1κ°€μ§€)

3 (1κ°€μ§€)

 3κ°€μ§€, d[3]=3

4

 1+1+1+1 (1κ°€μ§€)

2+2 (2κ°€μ§€)

3+1 (1κ°€μ§€)

 4κ°€μ§€, d[4]=4


의 μˆœμ„œλ‘œ μ§„ν–‰λ˜μ–΄ 4λΌλŠ” 정닡이 λ‚˜μ˜€κ²Œ λ©λ‹ˆλ‹€.

d[0]=1둜 μ΄ˆκΈ°ν™”ν•΄μ€€ λ’€,

빨간색행을 i둜, 보라색열을 j둜 생각해보면  j - i κ°€ 0 μ΄μƒμΌκ²½μš°, 총 κ²½μš°μ˜ μˆ˜κ°€ d[j-coin[i]]μ”© 증가함을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.


예λ₯Όλ“€μ–΄,

j : 2, i : 2μΌλ•Œ d[2-coin[2]]=d[0]=1 μ΄λ―€λ‘œ d[1]+d[0]=2,

j : 4, i : 2μΌλ•Œ d[4-coin[2]]=d[2]=2 μ΄λ―€λ‘œ d[1]+d[2]=3,

j : 4, i : 3μΌλ•Œ d[4-coin[3]]=d[1]=1 μ΄λ―€λ‘œ d[1]+d[2]+d[1]=4

κ°€ λ©λ‹ˆλ‹€.


κ²°κ΅­ 점화식은

(i : 1~n), (j : 0~k) 이고, j-coin[i] >=0 μΌλ•Œ d[j] += d[j-coin[i]] κ°€ λ©λ‹ˆλ‹€.


3.μ½”λ“œ


λ°˜μ‘ν˜•
μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ 동일쑰건 (μƒˆμ°½μ—΄λ¦Ό)

'πŸ€” PS(Problem Solving) > λ°±μ€€(BOJ)' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[λ°±μ€€/c++] 1520번 - 내리막 κΈΈ  (1) 2019.08.11
[λ°±μ€€/c++] 2294번 - 동전2  (0) 2019.08.11
[λ°±μ€€/c++] 1509번 - νŒ°λ¦°λ“œλ‘¬ λΆ„ν•   (0) 2019.08.09
[λ°±μ€€/c++] 10828번 - μŠ€νƒ  (0) 2019.08.06
[λ°±μ€€/c++] 10942번 - νŒ°λ¦°λ“œλ‘¬?  (0) 2019.08.04
    'πŸ€” PS(Problem Solving)/λ°±μ€€(BOJ)' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [λ°±μ€€/c++] 1520번 - 내리막 κΈΈ
    • [λ°±μ€€/c++] 2294번 - 동전2
    • [λ°±μ€€/c++] 1509번 - νŒ°λ¦°λ“œλ‘¬ λΆ„ν• 
    • [λ°±μ€€/c++] 10828번 - μŠ€νƒ
    Dev.Beth
    Dev.Beth
    Beth의 곡뢀 λΈ”λ‘œκ·Έ

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”