Skip to content

Conversation

@giljihun
Copy link
Member

@giljihun giljihun commented Apr 8, 2025

๐Ÿ”— ๋ฌธ์ œ ๋งํฌ

๋™์ „ 1

image

โœ”๏ธ ์†Œ์š”๋œ ์‹œ๊ฐ„

์‹ค์ œ ํ•ด๊ฒฐ ์‹œ๊ฐ„์€ 1์‹œ๊ฐ„++ ์€ ๋„˜๊ฒŒ ๊ฑธ๋ฆฐ ๊ฒƒ ๊ฐ™์•„์š”.
์ ํ™”์‹ ์ƒ๊ฐ์€ ๋‘˜์งธ์น˜๊ณ  ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ ํ•ด๊ฒฐ ๋•Œ๋ฌธ์— ^^

์—ฌ๋Ÿฌ๋ถ„ ์ง„์งœ
swift๋กœ ์ด ๋ฌธ์ œ ํ‘ธ์‹œ๋Š”๋ฐ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ 1๋ฒˆ๋„ ์•ˆ๋œจ์‹ ๋‹ค๋ฉด ์ •๋ง ์กด๊ฒฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

image
image

โœจ ์ˆ˜๋„ ์ฝ”๋“œ

์ผ๋‹จ ์ œ๊ฐ€ ์ง€๊ธˆ dp์  ์‚ฌ๊ณ ๋ ฅ์„ ๊ฝค๋‚˜ ๊ธฐ๋ฅด๊ณ  ์‹ถ์–ด์„œ ๊ฐœ์ธ๋ฌธ์ œ๋Š” dp๋กœ ๋˜ ํ’€์€ ์  ์–‘ํ•ด๋ฐ”๋ž๋‹ˆ๋‹ค!!!

์ ํ™”์‹์œผ๋กœ์˜ ์ ‘๊ทผ

์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์ ํ™”์‹ ์„ธ์šฐ๋Š”๋ฐ๊นŒ์ง€ ๋˜๊ฒŒ ํฅ๋ฏธ๋กœ์› ์Šต๋‹ˆ๋‹ค.
๋ญ”๊ฐ€ ์ œ๊ฐ€ ์•„์ง dpํ’€์ด๋ฅผ ๋‹ค์–‘ํ•œ ๊ด€์ ์—์„œ ๋ณด๋Š” ์‹ค๋ ฅ์ด ๋ถ€์กฑํ•จ์„ ๋А๋ผ๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋ฐ‘์—์„œ๋„ ์–˜๊ธฐํ•˜์ง€๋งŒ, ๋ณธ ๋ฌธ์ œ์—์„œ ์ ํ™”์‹ ์ƒ๊ฐ์ด ์–ด๋ ค์šฐ์…จ๋‹ค๋ฉด ํ‘œ๋ฅผ ๊ผญ ๊ทธ๋ ค๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์šฐ์„  ์ €๋Š” ์ ํ™”์‹์„ ์–ด๋–ป๊ฒŒ ์„ธ์šธ๊นŒ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€
dp[i] => i๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋กœ dp๋ฐฐ์—ด์„ ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์ฒ˜๋Ÿผ ํ‘œ๋ฅผ ๋งŒ๋“ค์—ˆ์–ด์š”. (์‹ค์ œ๋กœ๋Š” ํ›จ์”ฌ ๋”๋Ÿฝ๊ฒŒ ํ‘œ๋ฅผ ๊ทธ๋ ธ์—ˆ๊ณ , ๋‹ค์‹œ ๊ทธ๋ ธ์Šต๋‹ˆ๋‹ค.)

แ„‰แ…ณแ„แ…ขแ†ซ แ„†แ…ฎแ†ซแ„‰แ…ฅ แ„‡แ…ฉแ†จแ„‰แ…กแ„‡แ…ฉแ†ซ

์ ํ™”์‹์ด ์ž˜ ์™€๋‹ฟ์ง€ ์•Š์œผ์‹ ๋‹ค๋ฉด ํ•œ ๋ฒˆ ์ €์ฒ˜๋Ÿผ ์ง์ ‘ ํ‘œ๋ฅผ ๊ทธ๋ ค๋ณด์„ธ์š”!

ํ‘œ๋ฅผ ์„ค๋ช…ํ•˜์ž๋ฉด,
๋งจ ์œ—์ค„์ด ๋ชฉํ‘œ ์ˆซ์ž(k)์ด๊ณ , ์™ผ์ชฝ์ด ๋ณด์œ ํ•œ ๋™์ „๋“ค์ž…๋‹ˆ๋‹ค.

์ฑ„์›Œ์ง„ ๋„๋ฉ”์ธ๊ฐ’์€ ์™ผ์ชฝํ‘œ์˜ ๋™์ „๊ฐ’์„ ํ™œ์šฉํ•œ, ๋ชฉํ‘œ ์ˆซ์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์–ด์จ‹๋“  ์—ฌ๊ธฐ์„œ ํ•ต์‹ฌ์€ ์ด์ „ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ ํ™”์‹์„ ์„ธ์šฐ๋Š” ๊ฒƒ์ธ๋ฐ.
์ด์ „ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด, ๋ชฉํ‘œ์ˆซ์ž 10์—์„œ 5๋ฅผ ๋บ๋‹ค๊ณ  ์นฉ์‹œ๋‹ค.
๊ทธ๋Ÿฌ๋ฉด 5๋ฅผ ํ•˜๋‚˜ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด๊ณ , ์—ฌ๊ธฐ์„œ ๋‹ค์‹œ ์šฐ๋ฆฌ๊ฐ€ ๊ตฌํ•ด์•ผ ํ•  ๋ชฉํ‘œ ์ˆซ์ž๊ฐ€ 5๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๋ฐ”ํ…€์—…์œผ๋กœ 1๋ถ€ํ„ฐ ์ญ‰ ๋ฉ”๋ชจ๋ผ์ด์ง•์„ ํ–ˆ๋‹ค๋ฉด, ๋ชฉํ‘œ ์ˆซ์ž 5๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” ์•Œ๊ณ  ์žˆ๊ฒ ์ฃ ?
์ด๋Ÿฐ์‹์œผ๋กœ ์ ํ™”์‹์„ ์„ธ์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

for num in numbers {
    for i in num...k {
        dp[i] += dp[i - num]
    }
}

ํ‘œ๋ฅผ ์ฑ„์›Œ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋‹ค.
๋™์ „๋‹น ๋ชฉํ‘œ์ˆซ์ž K๊นŒ์ง€์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฑ„์šฐ๋Š” ๊ฒƒ์ด๋‹ค.
๊ทธ ๊ณผ์ •์—์„œ dp[i]๊ฐ€ ์ฑ„์›Œ์ง€๊ฒŒ๋œ๋‹ค.
(๊ทธ๋Ÿฌ๋‹ˆ๊นŒ, ์œ„ ํ‘œ๋ฅผ ๋ณด๋ฉด 1๋ถ€ํ„ฐ ์ญ‰ 10๊นŒ์ง€ ์ฑ„์› ์„ ๋• ===> dp[]๊ฐ€ ์ „๋ถ€ 1๋กœ ์ฑ„์›Œ์ง„ ์ƒํƒœ์ธ ๊ฒƒ.)

๊ทธ๋ฆฌ๊ณ  ๋‘๋ฒˆ์งธ ๋™์ „์ธ 2๊ฐ€ ์‹œ์ž‘๋˜๋ฉด,
1์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ์—†์œผ๋‹ˆ 0๊ฐœ.
2๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ 1๊ฐœ.
3์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ 2๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด 1๊ฐœ. (ํ•˜์ง€๋งŒ 1๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๋„ ์ €์žฅํ–ˆ์œผ๋‹ˆ? dp์—” 2๊ฐ€ ๋“ค์–ด๊ฐ€๊ฒ ์ง€.)

์ด๋Ÿฐ์‹์œผ๋กœ ๋ชจ๋“  dp ๋ฐฐ์—ด์ด ์ฑ„์›Œ์ง€๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค!!

ํ‘œ๋ฅผ ์ฑ„์›Œ๋ณด๋Š”๊ฒŒ ์ •๋ง ์ข‹์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๐Ÿ˜ซ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ 2์ข… ์„ ๋ฌผ์„ธํŠธ

image

์ด ๋ฌธ์ œ๋Š” ์ ํ™”์‹๋ง๊ณ  ๋Ÿฐํƒ€์ž„์˜ค๋ฅ˜๋•Œ๋ฌธ์— ๊ณจ์น˜๊ฐ€ ์•„ํŒ ์Šต๋‹ˆ๋‹ค. . .
ํ•œ ๋ฒˆ ํ’€์–ด๋ณด์…จ๊ณ , ์ €๋Š” ์‚ฝ์งˆ์„ ํ•ด์„œ ๊ทธ๋ƒฅ ๊ฐ„๋‹จํ•˜๊ฒŒ ์˜ฌ๋ฆฌ๋„๋ก ํ• ๊ฒŒ์š”.

1๋ฒˆ

for _ in 0..<n {
    guard let coin = Int(readLine() ?? "") else { exit(0) }
    
    // ๋Ÿฐํƒ€์ž„์—๋Ÿฌ ์žก๊ธฐ1
    if coin <= k {
        numbers.append(coin)
    }
}

๋ฌธ์ œ ์กฐ๊ฑด์ด ๋™์ „์˜ ๊ฐ€์น˜๊ฐ€ 10๋งŒ๊นŒ์ง€์ธ๋ฐ,
๋ชฉํ‘œ ์ˆซ์ž k๋Š” ์ตœ๋Œ€ 1๋งŒ์ž„.
๊ทธ๋ž˜์„œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ•ด์ฃผ์–ด์•ผํ•จ,,

์‚ฌ์‹ค ์ฒ˜์Œ์— ํ™•์ธํ•˜๊ณ  ์•„ ์ด๊ฑฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ•ด์ค˜์•ผํ•˜๋‚˜? ์ƒ๊ฐ์„ ํ•˜๊ณ  ๋“ค์–ด๊ฐ€๊ธด ํ–ˆ์œผ๋‚˜.. ์ƒˆํ•˜์–—๊ฒŒ ์žŠ์–ด๋ฒ„๋ฆผ.

๊ทผ๋ฐ ์ œ ์ƒ๊ฐ์—” ๊ตณ์ด ์ด๋Ÿฐ ๋ˆˆ์— ๋ณด์ด๋Š” ํ•จ์ •์„ ๋„ฃ๋Š”๋‹ค๋ผ.....๋ญ ๊ฒฝ๊ฐ์‹ฌ ์ผ์œผํ‚ค๊ธฐ์ธ๊ฐ€?

2๋ฒˆ

for num in numbers {
    for i in num...k {
        dp[i] += dp[i - num]
        // ๋Ÿฐํƒ€์ž„์—๋Ÿฌ ์žก๊ธฐ2
        if dp[i] >= 2_147_483_648 {
            dp[i] = 0
        }
    }
}

์œ„ dp ์ธ๋ฑ์Šค ๊ฐ’์— ๋Œ€ํ•ด ๋ฌธ์ œ ์ถœ๋ ฅ์— ๋‚˜์™€์žˆ๋Š” ***๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 231๋ณด๋‹ค ์ž‘๋‹ค.***๋ฅผ ์ถ”๊ฐ€ํ•ด์ค˜์•ผํ•œ๋‹ค..
๊ทผ๋ฐ ์ œ ์ƒ๊ฐ์—๋Š” ๋ฌธ์ œ ์ž…๋ ฅ ์กฐ๊ฑด ์ƒ์œผ๋กœ๋Š”
์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์ ˆ๋Œ€ ์•ˆ๋‚ ๊ฑฐ๊ฐ™์€๋ฐ... ์•ฝ๊ฐ„ ๋ถˆํ•„์š”ํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์•„๋‹Œ๊ฐ€ ์‹ถ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ƒฅ ์กฐ๊ฑด์— ์ฃผ์–ด์กŒ์œผ๋‹ˆ ๋ฌด์กฐ๊ฑด ์ฝ”๋“œ์— ์ถ”๊ฐ€ํ•˜๋ผ๋Š” ์–˜๊ธฐ์ธ๊ฐ€์š”?

ํ˜น์‹œ ๋ฐฑ์ค€ swift ์ปดํŒŒ์ผ๋Ÿฌ์—์„  Int32๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๋Š”๊ฑด๊ฐ€์š”?
์ด ๋ถ€๋ถ„ ์ž˜ ์ดํ•ดํ•˜์‹  ๋ถ„ ๋„์›€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

Comment on lines +38 to +41
// ๋Ÿฐํƒ€์ž„์—๋Ÿฌ ์žก๊ธฐ2
if dp[i] >= 2_147_483_648 {
dp[i] = 0
}
Copy link
Collaborator

@bishoe01 bishoe01 Apr 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ง„์งœ ์•„๋ฌด๋ฆฌ๋ด๋„ ๋งž๋Š”๊ฑฐ๊ฐ™์€๋ฐ, ๋Ÿฐํƒ€์ž„์—๋Ÿฌ ๋ฌดํ•œ์œผ๋กœ ๋– ์„œ ๊ธธ์„ ์ƒ๋‹˜ ์ด ๋ถ€๋ถ„ ์ฐธ๊ณ ํ•ด์„œ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ‘
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2025-04-13 แ„‹แ…ฉแ„’แ…ฎ 2 23 49

๋ฐฑ์ค€์ง„์งœ ๊ฐœ์—ด๋ฐ›๋„ค์š” ..

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ใ…‹ใ…‹ใ…‹ใ…‹๋Šช์— ์˜ค์…จ์—ˆ๊ตฐ์š”!!
์•„์ง๊นŒ์ง€ ์ •ํ™•ํ•˜๊ฒŒ ์›์ธ์„ ๋ชจ๋ฅด๊ฒ ๋„ค์š” ์œ„์—๋„ ์ ์—ˆ์ง€๋งŒ ์•„๋ž˜ ๋‚ด์šฉ์— ๋Œ€ํ•œ ํ•ด๋‹ต์„ ์•„์ง ์–ป์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ˜น์‹œ ๋ฐฑ์ค€ swift ์ปดํŒŒ์ผ๋Ÿฌ์—์„  Int32๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๋Š”๊ฑด๊ฐ€์š”?
์ด ๋ถ€๋ถ„ ์ž˜ ์ดํ•ดํ•˜์‹  ๋ถ„ ๋„์›€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bishoe01 ์•„๋ž˜ ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ์•ˆ๋‹ฌ๋ ค์„œ ์—ฌ๊ธฐ ๋‹ฌ๊ฒ ์”€๋‹ค !

2๋ฒˆ๊ณผ 3๋ฒˆ์„ ์–ด๋–ป๊ฒŒ ์ค‘๋ณต์ฒ˜๋ฆฌ๋ฅผ ๋นผ์ค„๊ฒƒ์ด๋ƒ๋กœ ๊ณ„์† ์ฐพ์œผ๋ คํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์•„์š”.
๊ฒฐ๊ตญ ๋™์ „๋‹จ์œ„๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค์ฃผ๋ฉด ์ž‘์€์• ๋ถ€ํ„ฐ ๋“ค์–ด๊ฐ€๋Š”๊ฑฐ๋กœ ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ๋”๋ผ๊ตฌ์š”.

์ €๋„ ์ด ๋ถ€๋ถ„์ด ๋˜๊ฒŒ ํ—ท๊ฐˆ๋ ธ๊ณ , ๊ทธ๋ž˜์„œ ํ‘œ๋ฅผ ๊ทธ๋ฆฌ๋ฉด์„œ ์ž‘์€ ๋™์ „ ๋‹จ์œ„๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์Œ“์ด๋Š”๊ฑธ ๋ณด๋‹ˆ ๋‹น์—ฐํ•˜๊ฒŒ๋„ dp๋กœ ํ‘ธ๋Š” ์ž…์žฅ์—์„  ์ƒ๊ฐํ•  ๋ถ€๋ถ„์ด ์•„๋‹ˆ๋”๋ผ๊ตฌ์š”!

๊ทธ๋ฆฌ๊ณ  ์ฒซ๋ฒˆ์งธ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋„˜ ๊น”๋”ํ•˜๊ฒŒ ์ž˜ํ•˜์…จ๋„ค์œ  ใ…Žใ…Ž

Copy link
Collaborator

@bishoe01 bishoe01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2025-04-13 แ„‹แ…ฉแ„’แ…ฎ 2 25 04

ํ’€์ด๋Š” ๊ฑฐ์˜ ๋™์ผํ•œ ๊ฒƒ ๊ฐ™์•„์š” !

์†์œผ๋กœ ๊ณ„์‚ฐํ•ด์ฃผ๋‹ค๊ฐ€ , ๊ฐ€์žฅ ๊ฑฑ์ •ํ–ˆ๋˜๊ฑด
์˜ˆ๋ฅผ๋“ค์–ด 3์›์„ ๋งŒ๋“ฆ์— ์žˆ์–ด์„œ

  1. 1์›3๊ฐœ
  2. 2์›1๊ฐœ 1์›1๊ฐœ
  3. 1์›1๊ฐœ 2์›1๊ฐœ

2๋ฒˆ๊ณผ 3๋ฒˆ์„ ์–ด๋–ป๊ฒŒ ์ค‘๋ณต์ฒ˜๋ฆฌ๋ฅผ ๋นผ์ค„๊ฒƒ์ด๋ƒ๋กœ ๊ณ„์† ์ฐพ์œผ๋ คํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์•„์š”.

๊ฒฐ๊ตญ ๋™์ „๋‹จ์œ„๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค์ฃผ๋ฉด ์ž‘์€์• ๋ถ€ํ„ฐ ๋“ค์–ด๊ฐ€๋Š”๊ฑฐ๋กœ ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ๋”๋ผ๊ตฌ์š”.
๊ทธ๋ž˜๋„ ์ข€ ์กฐ์ •์ด ํ•„์š”ํ• ์ง€ ์•Œ์•˜๋Š”๋ฐ, ๋ฐ”๋กœ ์˜ˆ์ œ ์ถœ๋ ฅ๊ฐ’๊ณผ ์ผ์น˜ํ•ด์„œ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

import Foundation

func solution(_ n: Int, _ k: Int, _ coins: [Int]) {
    var dpArr = Array(repeating: 0, count: k + 1)
    dpArr[0] = 1
    for coin in coins {
        if coin > k { continue } // coin๊ฐ’์ด k๋ณด๋‹คํฌ๋ฉด ๊ทธ๋ƒฅ ๋„˜๊ธฐ๊ธฐ (๋Ÿฐํƒ€์ž„์—๋Ÿฌ๋ฐฉ์ง€)
        for i in coin ... k {
            if dpArr[i] >= 2_147_483_648 { // ๊ธธ์„ ์ƒ๋‹˜ help
                dpArr[i] = 0
            }
            dpArr[i] += dpArr[i - coin] // ํ˜„์žฌ ์ฐพ๊ณ ์žํ•˜๋Š” ์ธ๋ฑ์Šค์—์„œ ๊ทธ coin๊ฐ’๋งŒํผ ๋นผ์ฃผ๋ฉด ๋จ !
        }
    }
    print(dpArr[k])
}

Comment on lines 37 to 48
for i in 2...N {
// 1์„ ๋นผ๋Š” ์—ฐ์‚ฐ์€ ํ•ญ์ƒ ๊ฐ€๋Šฅํ•จ
dp[i] = dp[i-1] + 1

if i % 2 == 0 {
dp[i] = min(dp[i], dp[i/2] + 1)
}

if i % 3 == 0 {
dp[i] = min(dp[i], dp[i/3] + 1)
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ํŒŒ์ผ ์ด๋ฆ„ ์•ˆ๋ณด๊ณ  ์–ด ์ ํ™”์‹ ์™œ์ด๋ ‡์ง€ ํ–ˆ๋Š”๋ฐ ๋‹ค๋ฅธ ๋ฌธ์ œ์˜€๋„ค์š” ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹..

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2^31์„ ๋„˜์–ด๊ฐ€๋ฉด ์•ˆ๋˜๋Š”๋ฐ Swift์—์„œ๋Š” 
๋„˜์–ด๊ฐ€๋Š”๊ฑฐ ๊นŒ์ง€ ์ฒ˜๋ฆฌํ•ด๋ฒ„๋ ค์„œ 2^31์ด์ƒ์ด๋ฉด ํ•ด๋‹น ๋ถ€๋ถ„์„ 0์œผ๋กœ ์ฒ˜๋ฆฌ.

์—ฌ๊ธฐ์„œ Swift์—์„œ๋Š” ๋„˜์–ด๊ฐ€๋Š”๊ฑฐ๊นŒ์ง€ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š”๊ฒŒ ์ฐธ ๋ญ”๊ฐ€ ์™€๋‹ฟ์ง€(?)๊ฐ€ ์•Š๋„ค์š” .. ใ… ใ… 

@alstjr7437
Copy link
Member

๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋œฌ ์ด์œ ๊ฐ€ 2^31์„ ๋„˜์–ด๊ฐ€๋ฉด ์•ˆ๋˜๋Š”๋ฐ Swift์—์„œ๋Š” ๋„˜์–ด๊ฐ€๋Š”๊ฑฐ ๊นŒ์ง€ ์ฒ˜๋ฆฌํ•ด๋ฒ„๋ ค์„œ 2^31์ด์ƒ์ด๋ฉด ํ•ด๋‹น ๋ถ€๋ถ„์„ 0์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผํ•ด์„œ ๊ทธ๋Ÿฐ๊ฑฐ ์•„๋‹๊นŒ์š”!?

์ €๋„ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ ์•ˆ๋œจ์ง€ ํ•˜๋ฉด์„œ ํ’€์—ˆ๋Š”๋ฐ 10๋ถ„ ๋™์•ˆ ๊ณ„์†ํ•˜๋‹ค๊ฐ€ ์•ˆ๋˜์„œ ๊ทธ๋ƒฅ ์ธํ„ฐ๋„ท ์ฐธ๊ณ ๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค..

Copy link
Collaborator

@MuchanKim MuchanKim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DP ์ž์‹ ๊ฐ ์–ป์€์ง€ ์ดํ‹€์ฐจ๋งŒ์— ํŒจ๋ฐฐ ์„ ์–ธ.(์–ด์ œ ๋ฐค๋Šฆ๊ฒŒ c5์—์„œ 4๋ช…์ด์„œ ๊ฐ™์ด ํ’€๋‹ค ์‹คํŒจํ•จ)
ํ’€์–ด๋ณด๋ ค๊ณ  ์˜ค๊ธฐ๋กœ ์žก๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์‹œ๊ฐ„ ๋„ˆ๋ฌด ๊ฑธ๋ ค์„œ ์ค‘๊ฐ„์— ๊ธธ ํ’€์ด ๋ณด๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค(ใ…Žใ…Ž).. DP์  ์‚ฌ๊ณ  ์–ธ์ œ์ฏค ๋‚˜์—๊ฒŒ ์˜ค๋Š”๊ฒƒ์ด๋ƒ...!

์ œ๊ฐ€ ์–ด๋–ค ์ ‘๊ทผ์„ ์‹œ๋„ํ–ˆ๋ƒ๋ฉด.. ์ผ๋‹จ ์ €๋ฒˆ DP๋ฌธ์ œ๋ž‘ ๋น„์Šทํ•˜๊ฒŒ ์ž‘์€ ์ˆ˜๋กœ ์ ‘๊ทผํ•ด์„œ ๊ทœ์น™์„ ์ฐพ์•„๋ณด๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.
TC coin = [1, 3, 5], total = 8๋กœ ์žก๊ณ  ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‹ค ์จ๋ดค์Šต๋‹ˆ๋‹ค. ์ค‘๋ณต๋œ ์—ฐ์‚ฐ์ด ๋ณด์ด๊ธดํ–ˆ์ง€๋งŒ ์ด๊ฒŒ ์–ด๋–ค ๊ทœ์น™์œผ๋กœ ๋ณด์ด๋Š”์ง€๋ฅผ ๋ชป์ฐพ๊ฒ ๋”๋ผ๊ณ ์š”. ๋„ค.. ๊ทธ๋ ‡๊ฒŒ ํ•œ์ฐธ ์ƒ๊ฐํ•˜๋‹ค ํ’€์ด๋ณด๊ณ  ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ํ’€์ด ์ •์„ฑ์Šค๋ ˆ ์จ์ฃผ์…”์„œ ๋ณด๊ณ  ์ฝ”๋“œ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์ด ๋งŽ์ด ๋˜์—ˆ์–ด์š”!
    ์ถ”๊ฐ€๋กœ ์ด ๋ฌธ์ œ๊ฐ€ ์–ด๋ ค์› ๋˜ ๋ถ„๋“ค์„ ์œ„ํ•ด ์ฐธ๊ณ ํ•œ ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ ๊ธ€๋„ ์ฒจ๋ถ€ํ•ฉ๋‹ˆ๋‹ค! (python ๊ธ€์ด์—์š”.. swift๋Š” ์„ค๋ช… ์ž์„ธํ•œ๊ฒŒ ์—†๋”๋ผ๊ตฌ์š”)
    https://didu-story.tistory.com/440

๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ๋ณด๋Š”๋ฐ ์ฝ”๋“œ๊ฐ€ ์–ผ์ถ” ๋‹ค ๋น„์Šทํ•œ ๋“ฏ!

ํ’€์ด๋Š” ๊ธธ๊ณผ ๋˜‘๊ฐ™์Šด๋„ค๋‹ค!

import Foundation

func solution(n: Int, k: Int, coins: [Int]) -> Int {

    var dp = Array(repeating: 0, count: k + 1)
    dp[0] = 1 

    for coin in coins {
        for i in coin...k {
            dp[i] += dp[i - coin]
            
            if dp[i] >= 1 << 31 {
                dp[i] = 0
            }
        }
    }
    
    let res = dp[k]
    return res
}

let input = readLine()!.split(separator: " ").map { Int($0)! }
let n = input[0]
let k = input[1]

var coins: [Int] = []

for _ in 0..<n {
    let coin = Int(readLine()!)!

    if coin <= k {
        coins.append(coin)
    }
}

let res = solution(n: n, k: k, coins: coins)
print(res)

Comment on lines +15 to +17
guard let input = readLine(),
let n = Int(input.split(separator: " ")[0]),
let k = Int(input.split(separator: " ")[1]) else { exit(0) }
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๊ธธ์€ ์ž…๋ ฅ๋ถ€ํ„ฐ ๋‚จ๋‹ค๋ฆ„.

for i in num...k {
dp[i] += dp[i - num]
// ๋Ÿฐํƒ€์ž„์—๋Ÿฌ ์žก๊ธฐ2
if dp[i] >= 2_147_483_648 {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ด ์ˆซ์ž๊ฐ€ ๋ญ”๊ฐ€ ํ–ˆ๋”๋‹ˆ Int32 ๋ฒ”์œ„์˜€๊ตฐ์š”! 2^31์„ ํ‘œํ˜„ํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋„ ๊ณต์œ ๋“œ๋ฆฝ๋‹ˆ๋‹ค~

// Int32 ๋ฒ”์œ„์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ํ‘œํ˜„๋“ค

// Int32 ๋‚ด์žฅ ์ƒ์ˆ˜
let maxInt = Int(Int32.max) + 1  // 2,147,483,648

// ๋น„ํŠธ์‹œํ”„ํŠธ
let intMax = 1 << 31. // 2,147,483,648

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์˜ค ์ข‹๋„ค์š” ๐Ÿ‘ ํ›จ์”ฌ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ์„ ์ˆ˜ ์žˆ๊ตฐ์š”

@sep037 sep037 removed their request for review April 22, 2025 03:14
Copy link
Collaborator

@YooGyeongMo YooGyeongMo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ตœ์ข…๋ณธ
image
'์ ์ ˆํžˆ' , ๋ฌธ์ œ์— 0์—๋Œ€ํ•œ ์กฐ๊ฑด ์ฒดํฌ ์—†์—ˆ ,,, Int32 -> ๋ฐฐ์—ด ๋””ํดํŠธ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๊ฒฝ๊ณ„๊ฐ’ ํ™•์ธ.. ํ•„...

๊ธธ... 2์‹œ๊ฐ„์ผ๋Š”๋ฐ ๋ชปํ’ˆ์š”

@giljihun giljihun merged commit 4172786 into main Apr 24, 2025
2 checks passed
@alstjr7437 alstjr7437 deleted the 2-giljihun branch May 23, 2025 06:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants