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

๋ชฉ๋ก์ฝ”๋”ฉํ…Œ์ŠคํŠธ (22)

Hey Tech

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

๐Ÿ“š ๋ฌธ์ œ ๋ฌธ์ œ ์›๋ณธ: 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) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐฑ์ค€#1202 #๊ณจ๋“œ | "๋ณด์„ ๋„๋‘‘" | ํŒŒ์ด์ฌ ํ’€์ด

๋ฌธ์ œ ์›๋ณธ ๋งํฌ: https://www.acmicpc.net/problem/1202 1202๋ฒˆ: ๋ณด์„ ๋„๋‘‘ ์ฒซ์งธ ์ค„์— N๊ณผ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N, K ≤ 300,000) ๋‹ค์Œ N๊ฐœ ์ค„์—๋Š” ๊ฐ ๋ณด์„์˜ ์ •๋ณด Mi์™€ Vi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (0 ≤ Mi, Vi ≤ 1,000,000) ๋‹ค์Œ K๊ฐœ ์ค„์—๋Š” ๊ฐ€๋ฐฉ์— ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋ฌด๊ฒŒ Ci๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ Ci www.acmicpc.net ์ ‘๊ทผ๋ฒ• ๋ณธ ๋ฌธ์ œ์˜ ๋ชฉํ‘œ๋Š” ๊ฐ€๊ฒฉ์ด ๋†’์€ ๋ณด์„์„ ์ตœ๋Œ€ํ•œ ๋งŽ์ด ๋‹ด๋˜ ์šฉ๋Ÿ‰์ด ์ ์€ ๊ฐ€๋ฐฉ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋‹ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋•Œ ๊ฐ€๋ฐฉ์˜ ์šฉ๋Ÿ‰์— ๋”ฐ๋ฅธ ํƒ์ƒ‰ ์ˆœ์„œ๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฌธ์ œ๋ฅผ ์ œ๋Œ€๋กœ ํ’€ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด (๋ฌด๊ฒŒ, ๊ฐ€์น˜) ์ •๋ณด๊ฐ€ ๋‹ด๊ธด 3๊ฐœ์˜ ๋ณด์„๊ณผ ๊ฐ€๋ฐฉ 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์›์„ ๋งŒ๋“ค ๋•Œ ํ•„์š”ํ•œ ๋™์ „์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ณธ ๋ฌธ์ œ๋Š” ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ์ดˆ ์˜ˆ์ œ์ธ ๊ฑฐ์Šค๋ฆ„๋ˆ ๋ฌธ์ œ์™€ ๋ณ€์ˆ˜ ์ด๋ฆ„์ด๋‚˜ ํ‘œํ˜„๋ฐฉ์‹์ด ๋‹ค๋ฅผ ๋ฟ ํ’€์ด ๋ฐฉ๋ฒ•์€ ๋งค์šฐ ํก์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ๋ถ€ ๋ณ€์ˆ˜๋ช…์„ ๊ฑฐ์Šค๋ฆ„๋ˆ ๋ฌธ์ œ..

๊ทธ๋ฆฌ๋””(Greedy) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ดํ•ด(Python ์˜ˆ์ œ ํฌํ•จ)

๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ทธ๋ฆฌ๋””(Greedy) ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. 1. ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? ๊ทธ๋ฆฌ๋””(Greedy)๋Š” ๊ทธ๋ฆผ 1 ์—์„œ ๋ณด์‹ค ์ˆ˜ ์žˆ๋“ฏ์ด ์‚ฌ์ „์  ์˜๋ฏธ๋กœ์„œ "ํƒ์š•์Šค๋Ÿฌ์šด"์ด๋ผ๋Š” ๋œป์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆผ 2 ์ฐธ๊ณ ). ์ฆ‰, ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ†ตํ•ด ํƒ์š•์Šค๋Ÿฝ๊ฒŒ ํ’€์–ด๋‚ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ "ํƒ์š•์Šค๋Ÿฌ์šด"์ด๋ผ๋Š” ๋ง์€ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ฃผ์–ด์ง„ ์ƒํ™ฉ์—์„œ ์ตœ์„ ์˜ ์˜ต์…˜๋งŒ ์„ ํƒํ•˜๋ฉฐ ํ˜„์žฌ์˜ ์„ ํƒ์ด ํ–ฅํ›„์— ๋ฏธ์น  ์˜ํ–ฅ์€ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. 2. ํŠน์ง• ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์—์„œ๋Š” ์ฃผ๋กœ "๊ฐ€์žฅ ํฐ ์ˆซ์ž ์ˆœ์„œ๋Œ€๋กœ" ํ˜น์€ "๊ฐ€์žฅ ์งง์€ ๊ฒฝ๋กœ ์ˆœ์œผ๋กœ"์™€ ๊ฐ™์€ ์กฐ๊ฑด์„ ์ œ์‹œํ•ด ์ค๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์กฐ๊ฑด์€ ๋Œ€์ฒด๋กœ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์„ธํŠธ๋กœ ์ฃผ์–ด์ง€๋Š” ..