[๋ฐฑ์ค€] 7579 ์•ฑ (python ํŒŒ์ด์ฌ)

2024. 3. 28. 19:22ยท๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]
 

7579๋ฒˆ: ์•ฑ

์ž…๋ ฅ์€ 3์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ฒซ ์ค„์—๋Š” ์ •์ˆ˜ N๊ณผ M์ด ๊ณต๋ฐฑ๋ฌธ์ž๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง€๋ฉฐ, ๋‘˜์งธ ์ค„๊ณผ ์…‹์งธ ์ค„์—๋Š” ๊ฐ๊ฐ N๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ๊ณต๋ฐฑ๋ฌธ์ž๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์˜ N๊ฐœ์˜ ์ •์ˆ˜๋Š” ํ˜„์žฌ ํ™œ

www.acmicpc.net


๋ƒ…์ƒ‰ ์‘์šฉ๋ฌธ์ œ.


์•„์ด๋””์–ด

๋ƒ…์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ๋ณธ ์›๋ฆฌ๋ฅผ ์ด์šฉํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

์ด์ฐจ์› ๋ฆฌ์ŠคํŠธ backpack[x][y]๋Š” x๋ฒˆ์งธ ์•ฑ๊นŒ์ง€ y๋น„์šฉ์œผ๋กœ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ’์ด๋‹ค.

 

1. ์—ด์˜ ํฌ๊ธฐ๋Š” ์ œ์‹œ๋œ ๋ชจ๋“  ๋น„์šฉ์˜ ์ดํ•ฉ์œผ๋กœ ํ•œ๋‹ค.

 

2 - 1. ํ˜„์žฌ ์•ฑ์˜ ๋น„์šฉ costList [i]๊ฐ€ j๋ณด๋‹ค ํฌ๋ฉด ๊ทธ๋Œ€๋กœ ๋‘”๋‹ค.

backpack[i][j] = backpack[i - 1][j]

 

 2 - 2. j ๊ฐ€ ๋” ํฌ๋ฉด ํ˜„์žฌ ์•ฑ์˜ ์œ ๋ฌด๋ฅผ ๋น„๊ตํ•ด ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ด์ค€๋‹ค. 

backpack[i][j] = max(backpack[i - 1][j], backpack[i - 1][j - costList[i]] + memoryList[i])

 

3. ํ˜„์žฌ backpack[x][y]์˜ ๊ฐ’์ด M ์ด์ƒ์ด๋ผ๋ฉด ์ •๋‹ต์„ ์ตœ์†Ÿ๊ฐ’ ์—…๋ฐ์ดํŠธ ํ•ด์ค€๋‹ค.

answer = min(answer, j)

์ „์ฒด ์ฝ”๋“œ

N, M = map(int, input().split())

memoryList = [0] + [int(x) for x in input().split()]
costList = [0] + [int(x) for x in input().split()]

backpack = [[0] * (sum(costList) + 1) for _ in range(N + 1)]

answer = sum(costList)

for i in range(1, N + 1):
    for j in range(1, sum(costList) + 1):
        if j < costList[i]:
            backpack[i][j] = backpack[i - 1][j]

        else:
            backpack[i][j] = max(backpack[i - 1][j], backpack[i - 1][j - costList[i]] + memoryList[i])

        if backpack[i][j] >= M:
            answer = min(answer, j)

print(answer)

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿงฉ Problem Solving > [๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 30804 ๊ณผ์ผ ํƒ•ํ›„๋ฃจ (python ํŒŒ์ด์ฌ)  (0) 2025.01.22
[๋ฐฑ์ค€] 2563 ์ƒ‰์ข…์ด (python ํŒŒ์ด์ฌ)  (0) 2024.04.01
[๋ฐฑ์ค€] 4179 ๋ถˆ! (python ํŒŒ์ด์ฌ)  (0) 2024.03.28
[๋ฐฑ์ค€] 2212 ์„ผ์„œ (python ํŒŒ์ด์ฌ)  (0) 2024.03.27
[๋ฐฑ์ค€] 16918 ๋ด„๋ฒ„๋งจ (python ํŒŒ์ด์ฌ)  (0) 2024.03.23
'๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 30804 ๊ณผ์ผ ํƒ•ํ›„๋ฃจ (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 2563 ์ƒ‰์ข…์ด (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 4179 ๋ถˆ! (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 2212 ์„ผ์„œ (python ํŒŒ์ด์ฌ)
์ œ๋ด‰์•„
์ œ๋ด‰์•„
  • ์ œ๋ด‰์•„
    Overthinking
    ์ œ๋ด‰์•„
    fake it till you make it.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (106)
      • ๐Ÿงฉ Problem Solving (83)
        • [๋ฐฑ์ค€] (74)
        • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] (7)
        • [SW Expert Academy] (1)
        • [์•Œ๊ณ ๋ฆฌ์ฆ˜ for PS] (1)
      • ๐Ÿ“ฆ Data Structure (2)
      • ๐Ÿ“œ Language (14)
        • [python] (14)
      • ๐Ÿ–ค Git (1)
      • ๐ŸŒ† ์ผ์ƒ (4)
        • ๐Ÿ’ฌ ๋ฒฝ๋ณด๊ณ  ๋งํ•˜๊ธฐ (4)
      • ๐Ÿ—„๏ธ ๊ธฐํƒ€ (2)
      • ๐Ÿ”ต css (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋ฐฑ์ค€
    ์žฌ๊ท€
    ์Šคํƒ
    ๊ทธ๋ฆฌ๋””
    boj
    ํŒฐ๋ฆฐ๋“œ๋กฌ
    imos
    Bruteforce
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๋ฐฑํŠธ๋ž˜ํ‚น
    ๋‹ค์ต์ŠคํŠธ๋ผ
    ์ •์ฒ˜๊ธฐ
    ๋ƒ…์ƒ‰
    ํŒŒ์ด์ฌ
    ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ
    BFS
    ๋ฐ๋ธŒ์ฝ”์Šค
    DP
    ํˆฌํฌ์ธํ„ฐ
    ๊ตฌํ˜„
    slicing
    DFS
    SWEA
    ํ”Œ๋กœ์ด๋“œ์›Œ์…œ
    Python
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    ๋ˆ„์ ํ•ฉ
    ๋ถ€๋ถ„ํ•ฉ
    ๋ถ„ํ•  ์ •๋ณต
    ์œ„์ƒ์ •๋ ฌ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ œ๋ด‰์•„
[๋ฐฑ์ค€] 7579 ์•ฑ (python ํŒŒ์ด์ฌ)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”