๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์•Œ๊ณ ๋ฆฌ์ฆ˜ํ…Œ์ŠคํŠธ (6)

Hey Tech

์™„์ „ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ #ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค #๋ชจ์˜๊ณ ์‚ฌ | ํŒŒ์ด์ฌ ๊ตฌํ˜„

๐Ÿ“š ๋ฌธ์ œ ๋ฌธ์ œ ์›๋ณธ: https://programmers.co.kr/learn/courses/30/lessons/42840?language=python3 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ชจ์˜๊ณ ์‚ฌ ์ˆ˜ํฌ์ž๋Š” ์ˆ˜ํ•™์„ ํฌ๊ธฐํ•œ ์‚ฌ๋žŒ์˜ ์ค€๋ง์ž…๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž ์‚ผ์ธ๋ฐฉ์€ ๋ชจ์˜๊ณ ์‚ฌ์— ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ์ „๋ถ€ ์ฐ์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž๋Š” 1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฐ์Šต๋‹ˆ๋‹ค. 1๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” programmers.co.kr ๐Ÿค” ์ ‘๊ทผ๋ฒ• โš™๏ธ ํ•ต์‹ฌ ์ž๋ฃŒ๊ตฌ์กฐ: ์™„์ „ ํƒ์ƒ‰ ๋ฌธ์ œํ•ด๊ฒฐ ์ „๋žต์˜ ํ•ต์‹ฌ์€ ์ˆ˜ํฌ์ž๋ณ„ '์ฐ๊ธฐ ํŒจํ„ด'์„ ๊ณ ๋ คํ•ด ๋ฌธ์ œ๋ณ„ ์ฐ์€ ๋ฒˆํ˜ธ๋ฅผ ์œ ์ถ”ํ•ด ๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณธ ๋ฌธ์ œ์—์„œ 1๋ฒˆ ์ˆ˜ํฌ์ž๋Š” 5๊ฐœ์”ฉ ํ•œ ํŒจํ„ด์œผ๋กœ ์ •๋‹ต์„ ์ฐ๊ณ , 2๋ฒˆ ์ˆ˜ํฌ์ž๋Š” 8๊ฐœ์”ฉ, 3๋ฒˆ ์ˆ˜ํฌ์ž๋Š” 10๊ฐœ์”ฉ ์ฐ๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆ˜ํฌ์ž๋ณ„ ์ •๋‹ต ์ฐ๋Š” ํŒจํ„ด..

ํ/์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ #ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค #๊ธฐ๋Šฅ๊ฐœ๋ฐœ | ํŒŒ์ด์ฌ ๊ตฌํ˜„

๐Ÿ“š ๋ฌธ์ œ ๋ฌธ์ œ ์›๋ณธ: https://programmers.co.kr/learn/courses/30/lessons/42586 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ธฐ๋Šฅ๊ฐœ๋ฐœ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํŒ€์—์„œ๋Š” ๊ธฐ๋Šฅ ๊ฐœ์„  ์ž‘์—…์„ ์ˆ˜ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ๋Šฅ์€ ์ง„๋„๊ฐ€ 100%์ผ ๋•Œ ์„œ๋น„์Šค์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜, ๊ฐ ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ฐœ์†๋„๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋’ค์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์•ž์— ์žˆ๋Š” programmers.co.kr ๐Ÿค” ์ ‘๊ทผ๋ฒ• โš™๏ธ ํ•ต์‹ฌ ์ž๋ฃŒ๊ตฌ์กฐ: ์Šคํƒ ๋ณธ ๋ฌธ์ œ์˜ ํ•ต์‹ฌ ์ „๋žต์€ ์ง„๋„ ์—…๋ฐ์ดํŠธ ๋ฐ [0] ์ธ๋ฑ์Šค ๊ธฐ๋Šฅ์˜ ์ง„๋„๊ฐ€ 100 ์ด์ƒ ์™„์ˆ˜๋˜์—ˆ๋Š”์ง€ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ตฌํ˜„ ๊ณผ์ •์„ ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ๋“œ๋ฆฌ์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋จผ์ €, ๋ชจ๋“  ๊ธฐ๋Šฅ์˜ ์ง„๋„(progresses)๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ , [0] ์ธ๋ฑ์Šค ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋˜์—ˆ๋Š”์ง€(i.e...

๋‹ค์ด๋‚˜๋ฏนํ”„๋กœ๊ทธ๋ž˜๋ฐ(DP) #ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค #์ •์ˆ˜ ์‚ผ๊ฐํ˜• | ํŒŒ์ด์ฌ ํ’€์ด

๐Ÿ“š ๋ฌธ์ œ ์›๋ณธ: https://programmers.co.kr/learn/courses/30/lessons/43105?language=python3 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ •์ˆ˜ ์‚ผ๊ฐํ˜• [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr ๐Ÿ”ฅ ์ ‘๊ทผ๋ฒ• ๋ฌธ์ œ๋ฅผ ๋ณด์ž๋งˆ์ž ์ „ํ˜•์ ์ธ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Dynamic Programming, DP) ์œ ํ˜•์˜ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์œ ์‚ฌํ•œ ์ ‘๊ทผ๋ฒ•์„ ์‚ฌ์šฉํ•œ DP ๋ฌธ์ œ๋กœ์„œ "์ตœ์ € ๋น„์šฉ์˜ ๋…ธ๋“œ๋งŒ ๊ฑฐ์ณ ๋ฏธ๋กœ๋ฅผ ํƒˆ์ถœํ•˜๋Š” ๋ฌธ์ œ"๋ฅผ ์ ‘ํ•œ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณธ ๋ฌธ์ œ์˜ ํ•ต์‹ฌ ์ „๋žต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‚ผ๊ฐํ˜• ๋งจ ์•„๋ž˜๋ถ€ํ„ฐ 2๊ฐœ์˜ ์ธ์ ‘ํ•œ ์ž์‹ ๋…ธ๋“œ ์ค‘ ํฐ ๊ฐ’์„ ๋ถ€๋ชจ ๋…ธ๋“œ์— ๋”ํ•ด ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ž…๋‹ˆ..

๊ทธ๋ฆฌ๋””(Greedy) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐฑ์ค€#12845 #์‹ค๋ฒ„ | "๋ชจ๋‘์˜ ๋งˆ๋ธ”" | ํŒŒ์ด์ฌ ํ’€์ด

๋ฌธ์ œ ๋ฌธ์ œ ์›๋ณธ: https://www.acmicpc.net/problem/12845 12845๋ฒˆ: ๋ชจ๋‘์˜ ๋งˆ๋ธ” ์˜๊ด€์ด๋Š” ๊ฒŒ์ž„์„ ์ข‹์•„ํ•œ๋‹ค. ๋ณ„์˜๋ณ„ ๊ฒŒ์ž„์„ ๋‹ค ํ•˜์ง€๋งŒ ๊ทธ ์ค‘์—์„œ ์ œ์ผ ์ข‹์•„ํ•˜๋Š” ๊ฒŒ์ž„์€ ๋ชจ๋‘์˜ ๋งˆ๋ธ”์ด๋‹ค. ์–ด๊น€์—†์ด ์˜ค๋Š˜๋„ ์˜๊ด€์ด๋Š” ํ•™๊ต ๊ฐ€๋Š” ๋ฒ„์Šค์—์„œ ์บ๋ฆญํ„ฐ ํ•ฉ์„ฑ ์ด๋ฒคํŠธ๋ฅผ ์ฐธ์—ฌํ–ˆ๋‹ค. ์ด๋ฒˆ ์ด www.acmicpc.net ์ ‘๊ทผ๋ฒ• ๊ฐ€์žฅ ๋†’์€ ๊ณจ๋“œ๋ฅผ ํš๋“ํ•˜๋Š” ๋ฐฉ๋ฒ•, ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋ ˆ๋ฒจ์ด ๊ฐ€์žฅ ๋†’์€ ์นด๋“œ 1์žฅ์„ ๊ณ ์ •ํ•˜๊ณ  ๋‚˜๋จธ์ง€ ์นด๋“œ์™€ ์ฐจ๋ก€๋กœ ๋ง์…ˆํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์–ด์ฐจํ”ผ ๋ชจ๋“  ์นด๋“œ์˜ ๋ ˆ๋ฒจ๊ณผ ํ•ฉ์‚ฐํ•ด์•ผ ํ•˜๋ฉฐ, ๋‘ ์นด๋“œ์˜ ๋ง์…ˆ์ด(=ํš๋“ ๊ณจ๋“œ๋Ÿ‰) ์ตœ๋Œ€๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ตœ์ƒ์œ„ ๋ ˆ๋ฒจ์˜ ์นด๋“œ 1์žฅ์„ ๊ณ ์ •์‹œํ‚ค๋ฉด ๋˜๋Š” ๊ฒƒ์ด์ฃ . ์†Œ์Šค์ฝ”๋“œ # ์นด๋“œ ๊ฐœ์ˆ˜ ์ž…๋ ฅ๋ฐ›๊ธฐ n = int(input()) # ์นด๋“œ๋ณ„ ๋ ˆ๋ฒจ ์ž…๋ ฅ๋ฐ›๊ธฐ level_l..

๊ทธ๋ฆฌ๋””(Greedy) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐฑ์ค€#11047 #์‹ค๋ฒ„ | "๋™์ „ 0" | ํŒŒ์ด์ฌ ํ’€์ด

๋ฌธ์ œ ๋ฌธ์ œ ์›๋ณธ: https://www.acmicpc.net/problem/11047 11047๋ฒˆ: ๋™์ „ 0 ์ฒซ์งธ ์ค„์— N๊ณผ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๋™์ „์˜ ๊ฐ€์น˜ Ai๊ฐ€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2์ธ ๊ฒฝ์šฐ์— Ai๋Š” Ai-1์˜ ๋ฐฐ์ˆ˜) www.acmicpc.net ์ ‘๊ทผ๋ฒ• ๋ณธ ๋ฌธ์ œ๋ฅผ ํ•œ ์ค„๋กœ ์š”์•ฝํ•˜์ž๋ฉด, N๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ๋™์ „์„ ์กฐํ•ฉํ•ด ํ™”ํ ๊ฐ€์น˜๊ฐ€ K์›์„ ๋งŒ๋“ค ๋•Œ ํ•„์š”ํ•œ ๋™์ „์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ณธ ๋ฌธ์ œ๋Š” ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ์ดˆ ์˜ˆ์ œ์ธ ๊ฑฐ์Šค๋ฆ„๋ˆ ๋ฌธ์ œ์™€ ๋ณ€์ˆ˜ ์ด๋ฆ„์ด๋‚˜ ํ‘œํ˜„๋ฐฉ์‹์ด ๋‹ค๋ฅผ ๋ฟ ํ’€์ด ๋ฐฉ๋ฒ•์€ ๋งค์šฐ ํก์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ๋ถ€ ๋ณ€์ˆ˜๋ช…์„ ๊ฑฐ์Šค๋ฆ„๋ˆ ๋ฌธ์ œ..

๋‹ค์ต์ŠคํŠธ๋ผ ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ดํ•ด (+Python ๊ตฌํ˜„)

๐Ÿ“š ๋ชฉ์ฐจ 1. ์ตœ๋‹จ๊ฒฝ๋กœ(๊ธธ์ฐพ๊ธฐ) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? 2. ๋‹ค์ต์ŠคํŠธ๋ผ ์ตœ๋‹จ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? 3. ๋‹ค์ต์ŠคํŠธ๋ผ ์ตœ๋‹จ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋™์ž‘ ๊ณผ์ • 4. ๊ตฌํ˜„ ๋ฐฉ๋ฒ•1: ์ผ๋ฐ˜์ ์ธ ๊ตฌํ˜„ 4.1. ์ฝ”๋“œ ํ•ด์„ค 4.2. ์ „์ฒด ์ฝ”๋“œ 4.3. ์‹œ๊ฐ„ ๋ณต์žก๋„ 5. ๊ตฌํ˜„ ๋ฐฉ๋ฒ•2: ์‹œ๊ฐ„ ๋ณต์žก๋„ ๊ฐœ์„  5.1. ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue) ์ž๋ฃŒ๊ตฌ์กฐ 5.2. ํž™(Heap) ์ž๋ฃŒ๊ตฌ์กฐ 5.3. ์šฐ์„ ์ˆœ์œ„ ํ ์ž๋ฃŒ๊ตฌ์กฐ ๊ธฐ๋ฐ˜์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋™์ž‘ ๊ณผ์ • 5.4. ์šฐ์„ ์ˆœ์œ„ ํ ์ž๋ฃŒ๊ตฌ์กฐ ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„(Python) 1. ์ตœ๋‹จ๊ฒฝ๋กœ(๊ธธ์ฐพ๊ธฐ) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? ์ตœ๋‹จ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ธธ์ฐพ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ, ๋ง ๊ทธ๋Œ€๋กœ ํŠน์ • ์ง€์ ๊นŒ์ง€ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ…Œ์ŠคํŠธ์—์„œ ๋นˆ์ถœ ์ตœ๋‹จ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜•์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ..