๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (454)

Bibi's DevLog ๐Ÿค“๐ŸŽ

[Hello Coding ์•Œ๊ณ ๋ฆฌ์ฆ˜] 4. ํ€ต ์ •๋ ฌ

[210701] Hello Coding ์•Œ๊ณ ๋ฆฌ์ฆ˜ 4. ํ€ต ์ •๋ ฌ ๋ถ„ํ•  ์ •๋ณต divide and conquer : ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ค‘ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์žฌ๊ท€์  ์•Œ๊ณ ๋ฆฌ์ฆ˜. ํŠน์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜(๊ธฐ์ˆ )์ด ์•„๋‹Œ, ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•๋ก ์ด๋‹ค. ๋ถ„ํ•  ์ •๋ณต์˜ ์ฆ๋ช… - '์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• Euclid's algorithm' ์ฐธ๊ณ ํ•˜๊ธฐ ์˜ˆ์‹œ : ๋†๋ถ€๊ฐ€ ์–ด๋–ค ๋•…์„ ๋˜‘๊ฐ™์€ ์ •์‚ฌ๊ฐํ˜• ํ† ์ง€๋กœ ๋‚˜๋ˆ„๊ณ  ์‹ถ์„ ๋•Œ. ๋ถ„ํ•  ์ •๋ณต์œผ๋กœ ํ‘ธ๋Š” ๋‹จ๊ณ„. ๊ธฐ๋ณธ ๋‹จ๊ณ„๋ฅผ ์ฐพ๋Š”๋‹ค. ์ด ๋ถ€๋ถ„์€ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์—ฌ์•ผ ํ•œ๋‹ค. ์ „์ฒด ๋ฌธ์ œ๊ฐ€ ๊ธฐ๋ณธ ๋‹จ๊ณ„๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๋‚˜๋ˆ„๊ฑฐ๋‚˜ ์ž‘๊ฒŒ ๋งŒ๋“ ๋‹ค. ๋ถ„ํ•  ์ •๋ณต์—์„œ๋Š” ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๋งˆ๋‹ค ๋ฌธ์ œ๋ฅผ ์ž‘๊ฒŒ ๋‚˜๋ˆ„์–ด์•ผ ํ•œ๋‹ค. ์˜ˆ์ œ Q. ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์ˆซ์ž๋ฅผ ๋”ํ•œ ํ•ฉ๊ณ„ ๊ตฌํ•˜๊ธฐ. ๋ฐ˜๋ณต๋ฌธ์ด ์•„๋‹Œ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ธฐ๋ณธ ๋‹จ๊ณ„๋ฅผ ์ฐพ๋Š”๋‹ค. (..

[Hello Coding ์•Œ๊ณ ๋ฆฌ์ฆ˜] 3์žฅ. ์žฌ๊ท€

3์žฅ. ์žฌ๊ท€ ์‹œ์ž‘ํ•˜๊ธฐ์— ์•ž์„œ ์˜ˆ์ œ ์ฝ”๋“œ ์ง์ ‘ ์‹คํ–‰ํ•ด ๋ณด๊ธฐ ์ ์–ด๋„ ํ•œ ๋ฒˆ์€ ์—ฐํ•„๊ณผ ์ข…์ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žฌ๊ท€ํ•จ์ˆ˜์˜ ์‹คํ–‰ ๊ณผ์ •์„ ๋”ฐ๋ผ๊ฐ€ ๋ณด๊ธฐ. ์˜์‚ฌ์ฝ”๋“œ(pseudocode, ์Šˆ๋„์ฝ”๋“œ) : ๋ฌธ์ œ์™€ ํ’€์ด ๋ฐฉ๋ฒ•์„ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋กœ ์„ค๋ช…ํ•œ ๊ฒƒ. ์‹ค์ œ๋กœ ๋™์ž‘ํ•˜์ง„ ์•Š์Œ ์žฌ๊ท€ recursion ์žฌ๊ท€ ํ•จ์ˆ˜๊ฐ€ ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ. ๋ฌธ์ œ : ์—ฌ๋Ÿฌ ๊ฒน์œผ๋กœ ํฌ์žฅ๋œ ์ƒ์ž๋“ค์ด ์žˆ๊ณ , ๊ทธ ์ƒ์ž๊ฐ€ ๋˜ ๋‹ค๋ฅธ ์ƒ์ž๋“ค ์†์— ๋“ค์–ด ์žˆ๋‹ค. ๋ช‡ ๊ฐœ์ผ์ง€ ๋ชจ๋ฅด๋Š” ์ƒ์ž๋“ค ์ค‘ ์—ด์‡ ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ์ƒ์ž๋ฅผ ์ฐพ์•„์•ผ ํ•œ๋‹ค. ๋ฐฉ๋ฒ• 1 : ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ ๋‚ด๋ถ€๋ฅผ ํ™•์ธํ•  ์ƒ์ž๋ฅผ ์Œ“์•„๋†“๋Š”๋‹ค(=์ƒ์ž ๋”๋ฏธ). ์ƒ์ž ํ•˜๋‚˜๋ฅผ ์ง‘์–ด์„œ ๋‚ด๋ถ€๋ฅผ ํ™•์ธํ•œ๋‹ค. ๋งŒ์•ฝ ์•ˆ์— ์ƒ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด, ํ™•์ธํ•  ์ƒ์ž ๋”๋ฏธ์— ๋†“์€ ๋’ค 2๋กœ ๋Œ์•„๊ฐ„๋‹ค. ๋งŒ์•ฝ ์•ˆ์— ์—ด์‡ ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ž‘์—…์„ ์ข…๋ฃŒํ•œ๋‹ค. ์•„๋ž˜๋Š” ์œ„ ๊ณผ์ •์— ๋Œ€..

[Hello Coding ์•Œ๊ณ ๋ฆฌ์ฆ˜] 2์žฅ. ์„ ํƒ ์ •๋ ฌ

[210630] (์–ด์ œ์— ์ด์–ด์„œ ์ž‘์„ฑ) Hello Coding ์•Œ๊ณ ๋ฆฌ์ฆ˜ 2์žฅ. ์„ ํƒ ์ •๋ ฌ ๋ฐฐ์—ด, ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ, ์„ ํƒ ์ •๋ ฌ์— ๊ด€ํ•ด ๊ณต๋ถ€ํ•œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋™์ž‘ ๋ฐฉ์‹. ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ์„œ๋ž์ด ์žˆ๊ณ , ๊ฐ ์„œ๋ž์—๋Š” ์ฃผ์†Œ๊ฐ€ ๋ถ™์–ด ์žˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์— ๋ฌด์–ธ๊ฐ€๋ฅผ ์ €์žฅํ•  ๋•Œ๋Š” ์ปดํ“จํ„ฐ์—๊ฒŒ ๊ณต๊ฐ„์„ ์š”์ฒญํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์›์†Œ๋ฅผ ์ €์žฅํ•  ๋•Œ, '๋ฐฐ์—ด'๊ณผ '๋ฆฌ์ŠคํŠธ' ๋‘ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•œ๋‹ค. ๋ฐฐ์—ด vs ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๋ฐฐ์—ด (array) ์นœ๊ตฌ๋“ค๊ณผ ์˜ํ™”๋ฅผ ๋ณด๋Ÿฌ ๊ฐ€์„œ ์ž๋ฆฌ๋ฅผ ์ฐพ์„ ๋•Œ์— ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. 3๋ช…์ด์„œ ์ขŒ์„์„ ์˜ˆ์•ฝํ–ˆ๋Š”๋ฐ ํ•œ ๋ช…์ด ๋” ์™”๋‹ค๋ฉด, 4๋ช…์ด์„œ ๋ถ™์–ด ์•‰์„ ์ˆ˜ ์žˆ๋Š” ์ขŒ์„์œผ๋กœ ๋‹ค ๊ฐ™์ด ์˜ฎ๊ฒจ ์•‰์•„์•ผ ํ•จ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์›์†Œ๋Š” ๊ฐ™์€ ์ž๋ฃŒํ˜•์ด์–ด์•ผ ํ•œ๋‹ค. ์žฅ์  : READ๊ฐ€ ๋น ๋ฅด๋‹ค. ์ธ๋ฑ์Šค index : ๋ฐฐ์—ด์—์„œ๋Š”..

[Hello Coding ์•Œ๊ณ ๋ฆฌ์ฆ˜] 1์žฅ. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์†Œ๊ฐœ

[210628] Hello Coding ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1์žฅ. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์†Œ๊ฐœ ๋“ค์–ด๊ฐ€๋Š” ๊ธ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์–ด๋–ค ์ผ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์˜ ์ง‘ํ•ฉ ์„ฑ๋Šฅ ์—ฌ๋Ÿฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์˜ ์žฅ๋‹จ์ ๊ณผ ์ฐจ์ด์ ์„ ์ดํ•ดํ•˜๊ณ  ์“ธ ์ค„ ์•Œ์•„์•ผ ํ•œ๋‹ค. ๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ / ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์“ฐ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋‹จ์ˆœ ํƒ์ƒ‰ simple search ํƒ์ƒ‰ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ์‚ฌ์šฉ. ๋™์ž‘ : ๋‹จ์ˆœํžˆ ์›์†Œ ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ๋งž๋Š”์ง€ ์•„๋‹Œ์ง€ ์ผ์ผ์ด ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹ n๊ฐœ์˜ ์›์†Œ ๋ฆฌ์ŠคํŠธ์—์„œ ์ตœ๋Œ€ n๋ฒˆ๋งŒ์— ์ •๋‹ต์„ ์ฐพ์Œ ์ด์ง„ ํƒ์ƒ‰ binary search ํƒ์ƒ‰ ๋ฌธ์ œ search ๋ฅผ ํ’€ ๋•Œ ์‚ฌ์šฉ. ์ด์ง„ ํƒ์ƒ‰์€ ๋งค ๋‹จ๊ณ„๋งˆ๋‹ค ์ ˆ๋ฐ˜์˜ ํ›„๋ณด๋“ค์„ ์—†์•จ ์ˆ˜ ์žˆ๋‹ค. input : ์ •๋ ฌ๋œ ์›์†Œ ๋ฆฌ์ŠคํŠธ output : ์›ํ•˜๋Š” ์›์†Œ๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜. ์•„๋‹ˆ๋ฉด null ๋ฐ˜ํ™˜. ๋™์ž‘ ์ •..