๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€105

4. ์‹œ๋ถ„ํ•  ๋‹ค์ค‘ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Time Sharing Multi-Programming) OS ์‹œ๋ถ„ํ•  ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ถœํ˜„ ๋ฐฐ๊ฒฝ? ์‹œ๋ถ„ํ•  ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•๊ณผ ๊ฑฐ์˜ ๋™์‹œ์— ์—ฐ๊ตฌ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๋‹ค. ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๋ฌธ์ œ์ ์„ ๊ฐœ์„ ํ•˜๊ณ ์ž ์—ฐ๊ตฌ๋˜์—ˆ์œผ๋‚˜ ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์˜ ๋ฌธ์ œ์ ๋„ ๋ฐœ๊ฒฌํ•˜๊ณ  ์—ฐ๊ตฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ฐœ๊ฒฌํ•œ ๋ฌธ์ œ์ ์€ ๋น„๋Œ€ํ™”์‹ ์ฒ˜๋ฆฌ ๋ฐฉ์‹๊ณผ ๊ทธ๋กœ ์ธํ•œ ๋А๋ฆฐ ์‘๋‹ต, ์˜ค๋žœ ๋Œ€๊ธฐ ์‹œ๊ฐ„์˜ ๋ฌธ์ œ์ด๋‹ค. ๋Œ€ํ™”์‹ ์‹œ์Šคํ…œ ์‹œ๋ถ„ํ•  ์šด์˜์ฒด์ œ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋น ๋ฅธ ์‘๋‹ต์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€ํ™”์‹ ์‹œ์Šคํ…œ์„ ์ œ์•ˆํ–ˆ๋‹ค. ํ‚ค๋ณด๋“œ์™€ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ํ†ตํ•ด ๋ฉ”์ธ ์ปดํ“จํ„ฐ์— ๋ชจ๋Ž€ ๊ฐ„ ์—ฐ๊ฒฐ ํ›„ ์‹œ๊ฐ„์— ๋”ฐ๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๊ฐ ์‚ฌ์šฉ์ž๋Š” ๋ฉ”์ธ PC์— ์—ฌ๋Ÿฌ ํ‚ค๋ณด๋“œ์™€ ์—ฌ๋Ÿฌ ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด ์‘๋‹ต ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ํ•ต์‹ฌ์€ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ์†๋„๋ณด๋‹ค ์ปดํ“จํ„ฐ์˜ ์—ฐ์‚ฐ ์†๋„๊ฐ€ ๋น ๋ฅด๋ฏ€๋กœ ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ๋Š” ์‘๋‹ต์ด ๋А๋ฆฌ๋‹ค๊ณ  ์ƒ๊ฐ.. 2024. 4. 21.
3. ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Multi-Processing) OS ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์ด ์ถœํ˜„ํ•œ ๋ฐฐ๊ฒฝ์„ ์ƒ๊ฐํ•ด๋ณด์ž. ์ด์ „, ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ์—์„œ ์–ด๋–ค ๋ฌธ์ œ๋กœ ์ธํ•ด ๋‹ค์ค‘ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์˜ ์•„์ด๋””์–ด๊ฐ€ ์ œ์•ˆ ๋˜์—ˆ์„ ๊ฒƒ์ด๋‹ค. ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ๋Š” ์ผ๊ด„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์ง€๋งŒ CPU ์ž‘์—… ์ค‘ ํŠน์ • ๋ช…๋ น ์ฝ”๋“œ์—์„œ I/O ์ž‘์—…์„ ์š”์ฒญํ•œ๋‹ค. ๊ทธ๋Ÿผ ์ปดํ“จํ„ฐ๋Š” CPU ์ž‘์—…์„ ํ•˜๋‹ค๊ฐ€ I/O ์ž‘์—…์„ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด ์ž‘์—…์ด ๋ฐ˜๋ณต๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•œ ๊ฒƒ์ด๋‹ค. ์‹ค์งˆ์ ์œผ๋กœ ์ปดํ“จํ„ฐ์—์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” HW๋Š” CPU์ธ๋ฐ ์ปดํ“จํ„ฐ๊ฐ€ I/O ์ž‘์—…์„ ํ•˜๋ฉด์„œ CPU๋Š” ๋Œ€๊ธฐํ•˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•œ๋‹ค. ์ด๊ฒƒ์„ CPU idle time ์ด๋ผ๊ณ  ํ•œ๋‹ค. CPU IDLE Time์„ ์ค„์ด๋ฉด CPU ํ™œ์šฉ๋ฅ (์ฒ˜๋ฆฌ์œจ)์ด ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์ด ์ถœํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์€ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ˆ˜์šฉํ• ๋งŒํผ ๋ฉ”๋ชจ๋ฆฌ์— .. 2024. 4. 21.
2. ์šด์˜์ฒด์ œ์˜ ๋ฐœ์ „ ์šด์˜์ฒด์ œ๊ฐ€ ๋ฐœ์ „ํ•œ ๊ณผ์ • ์šด์˜์ฒด์ œ๋Š” ํฌ๊ฒŒ ๊ณ ์ • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹, ๋‚ด์žฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹, ๋กœ๋” ํ”„๋กœ๊ทธ๋žจ, ์›์‹œ ์šด์˜์ฒด์ œ, ์ตœ์ดˆ์˜ ์šด์˜์ฒด์ œ(๋ฐฐ์น˜ ์šด์˜์ฒด์ œ), ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์šด์˜์ฒด์ œ, ์‹œ๋ถ„ํ•  ๋‹ค์ค‘ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ๊ฐœ์ธ์šฉ ์šด์˜์ฒด์ œ๋กœ ๋‚˜๋‰œ๋‹ค. ๊ทธ ์™ธ, ์ž„๋ฒ ๋””๋“œ ์šด์˜์ฒด์ œ, ๋ชจ๋ฐ”์ผ ์šด์˜์ฒด์ œ, ์‹ค์‹œ๊ฐ„ ์šด์˜์ฒด์ œ, ์„œ๋ฒ„ ์šด์˜์ฒด์ œ ๋“ฑ์ด ์žˆ๋‹ค. ๊ณ ์ • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹ (fixed program computer) 1940๋…„๋Œ€ ์ปดํ“จํ„ฐ๋กœ OS์— ๋Œ€ํ•œ ๊ฐœ๋…์ด ์—†์„ ๋•Œ์ด๋‹ค. ์ด ๋•Œ๋Š” HW๋งŒ ์กด์žฌํ–ˆ๊ณ  ํ‚ค๋ณด๋“œ๋กœ ๋ช…๋ น์„ ํ•˜๋Š” ๊ฐœ๋…์ด ์—†์„ ๋•Œ์ด๋‹ค. ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ–ˆ์„๊นŒ? ์ข…์ด์— ์Šค์œ„์น˜์™€ ์ „์„  ์—ฐ๊ฒฐ๋„๋ฅผ ์ž‘์„ฑํ•˜๋ฉฐ ๋ฐฐ์„ ํŒ์— ์ „์„ ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ํ•˜๋‚˜์˜ ๊ณ„์‚ฐ์„ ์œ„ํ•ด ํ•œ ๋ฒˆ์˜ ์ž…๋ ฅ(์ „์„  ์—ฐ๊ฒฐ)์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ  ์—ฐ์‚ฐ์—๋„ ์˜ค๋ž˜ ๊ฑธ๋ ค์„œ ๊ณ ์ •.. 2024. 4. 21.
1. ์šด์˜์ฒด์ œ(OS, Operating System)๋ž€? ์šด์˜์ฒด์ œ๋Š” ์‚ฌ์šฉ์ž์™€ H/W ์‚ฌ์ด์—์„œ ์ค‘๊ณ„ ์—ญํ• ์„ ํ•˜๋Š” ๋…€์„์ด๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์„ ํ†ตํ•ด ์–ด๋–ป๊ฒŒ ์ค‘๊ณ„ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹ค์ œ ์‘์šฉ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ‚ค๋ณด๋“œ, ๋งˆ์šฐ์Šค ์ž…๋ ฅ์„ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ์˜ ์ถœ๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—…์€ OS๊ฐ€ ๋‹ค ์ˆ˜ํ–‰ํ•˜๊ณ ์žˆ๋‹ค. ๊ทธ๋Ÿผ ์—ฌ๊ธฐ์„œ ์˜๋ฌธ์ ์ด ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋‹ค. OS๋Š” ํ•˜๋“œ์›จ์–ด์ธ๊ฐ€? ์†Œํ”„ํŠธ์›จ์–ด์ธ๊ฐ€? ์–ด๋А ์œ„์น˜์—์„œ ๋™์ž‘ํ•˜๋Š”๊ฐ€? OS๋Š” ํ•˜๋“œ์›จ์–ด์˜ ์ž…/์ถœ๋ ฅ์„ ๊ด€๋ฆฌํ•˜์ง€๋งŒ ์ •ํ™•ํžˆ ์†Œํ”„ํŠธ์›จ์–ด์— ํ•ด๋‹นํ•œ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ์ค‘์—์„œ๋„ System Software์— ํ•ด๋‹น๋œ๋‹ค. ๊ทธ๋Ÿผ ๋˜, System Software๊ฐ€ ๋ฌด์—‡์ด๋ƒ๊ณ  ๋ฌป๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. OS์—์„œ System Software์— ๋Œ€ํ•ด์„œ๋Š” ์ž์„ธํ•˜๊ฒŒ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋‚˜ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๊ฐ™์€ System Softw.. 2024. 4. 20.
Opinionated๊ณผ Out of the box Opinionated '์ž๊ธฐ ์ฃผ์žฅ์ด ๊ฐ•ํ•œ'์ด๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š” ์ด ์šฉ์–ด๋Š” SpringBoot์˜ Concept๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. SpringBoot๋Š” ๋งค๋ฒˆ Servlet์„ ๋„์›Œ์•ผํ•˜๋Š” Spring์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํƒ„์ƒํ•œ Framework์ด๋‹ค. ์ด๋Ÿฐ Containerless ์„ฑ์งˆ๋ฟ๋งŒ ์•„๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋ณธ์ ์ธ ๊ฐ€์ด๋“œ(?), ๋กœ๋“œ๋งต(?)์„ ์ œ๊ณตํ•˜๊ณ ์žˆ๋‹ค. Spring Framework์˜ ์„ค๊ณ„ ์ฒ ํ•™ ๊ทน๋‹จ์ ์œผ๋กœ ์œ ์—ฐํ•˜๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž… (Dependency Injection, DI) ๊ด€์ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Aspect-Oriented Programming, AOP) IoC(Inversion of Control) Container ๋‹ค์–‘ํ•œ ๋ชจ๋“ˆ, ํ™•์žฅ์„ฑ, ... ๋‹ค์–‘ํ•œ ๊ด€์ ์„ ์ˆ˜์šฉํ•œ๋‹ค ์›น ๊ฐœ๋ฐœ, .. 2024. 3. 4.
Containerless์™€ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ํ”„๋กœ๊ทธ๋žจ(standalone application) ๋ณดํ†ต ๋ฌด์–ธ๊ฐ€๊ฐ€ ํ•„์š” ์—†์„ ๋•Œ less๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Containerless๋Š” ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ Container๊ฐ€ ํ•„์š”์—†๋‹ค๋Š” ๋œป์„ ๊ฐ€์ง€๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๊ฒƒ์ด ์Šคํ”„๋ง ๋ถ€ํŠธ๊ฐ€ ์‹œ์ž‘๋˜๋Š” ๋ฐฐ๊ฒฝ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. Container? ๋ชจ๋“ˆ๊ณผ ์ปดํฌ๋„ŒํŠธ, ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ํฌ์ŠคํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๊ณ  ์˜ค๋ฉด ์ข‹๋‹ค. ์œ„ ํฌ์ŠคํŠธ์—์„œ ๋ชจ๋“ˆ๊ณผ ์ปดํฌ๋„ŒํŠธ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์—์„œ ์ •์˜ํ•œ ๋‚ด์šฉ์ด๋‹ค. ์ด ํฌ์ŠคํŠธ์˜ ์ปดํฌ๋„ŒํŠธ๋Š” FrontEnd์—์„œ ์„ค๋ช…ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์™€ BackEnd์—์„œ ์„ค๋ช…ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํŒŒ์ƒ ๋œ ๊ฒƒ. ์šฐ๋ฆฌ๊ฐ€ ์›น, ์•ฑ์—์„œ ํŠน์ • ๊ธฐ๋Šฅ๋“ค(๊ธ€์“ฐ๊ธฐ, ๋ฉ”์ผ ์ž‘์„ฑ, ...)์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด FrontEnd์—์„œ ๋ณด์ด๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฐฑ์—”๋“œ์˜ ์ปดํฌ๋„ŒํŠธ์™€ ์—ฐ๊ฒฐ๋˜์–ด ์šฐ๋ฆฌ์—๊ฒŒ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ฒŒ ๋œ๋‹ค. SpringBoot๋Š” Java ๊ธฐ๋ฐ˜ FrameWo.. 2024. 3. 4.
๋ฐฑ์ค€ - [BOJ 3085] ์‚ฌํƒ•๊ฒŒ์ž„ ๋ฐฑ์ค€ ์˜จ๋ผ์ธ ์ ธ์ง€(BOJ)์—์„œ ์ œ๊ณต ๋˜๋Š” 3085๋ฒˆ ๋ฌธ์ œ๋Š” ๋ธŒ๋ฃจํŠธ ํฌ์Šค(Brute-Froce, ์™„์ „ ํƒ์ƒ‰) ์œ ํ˜•์ด๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ๋Š” code.plus ๊ธฐ์ดˆ 2/2, ๋ธŒ๋ฃจํŠธํฌ์Šค์— ๊ฒŒ์‹œ๋œ ๋ฌธ์ œ์ด๋‹ค. ๋ฌธ์ œ ์ƒ๊ทผ์ด๋Š” ์–ด๋ ธ์„ ์ ์— "๋ด„๋ณด๋‹ˆ (Bomboni)" ๊ฒŒ์ž„์„ ์ฆ๊ฒจํ–ˆ๋‹ค. ๊ฐ€์žฅ ์ฒ˜์Œ์— N×Nํฌ๊ธฐ์— ์‚ฌํƒ•์„ ์ฑ„์›Œ ๋†“๋Š”๋‹ค. ์‚ฌํƒ•์˜ ์ƒ‰์€ ๋ชจ๋‘ ๊ฐ™์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค. ์ƒ๊ทผ์ด๋Š” ์‚ฌํƒ•์˜ ์ƒ‰์ด ๋‹ค๋ฅธ ์ธ์ ‘ํ•œ ๋‘ ์นธ์„ ๊ณ ๋ฅธ๋‹ค. ๊ทธ ๋‹ค์Œ ๊ณ ๋ฅธ ์นธ์— ๋“ค์–ด์žˆ๋Š” ์‚ฌํƒ•์„ ์„œ๋กœ ๊ตํ™˜ํ•œ๋‹ค. ์ด์ œ, ๋ชจ๋‘ ๊ฐ™์€ ์ƒ‰์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ๊ฐ€์žฅ ๊ธด ์—ฐ์† ๋ถ€๋ถ„(ํ–‰ ๋˜๋Š” ์—ด)์„ ๊ณ ๋ฅธ ๋‹ค์Œ ๊ทธ ์‚ฌํƒ•์„ ๋ชจ๋‘ ๋จน๋Š”๋‹ค. ์‚ฌํƒ•์ด ์ฑ„์›Œ์ง„ ์ƒํƒœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ƒ๊ทผ์ด๊ฐ€ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์‚ฌํƒ•์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ๋ณด๋“œ์˜ ํฌ๊ธฐ N์ด .. 2024. 3. 1.
๋ฐฑ์ค€ - [BOJ 12094] A์™€ B ๋ฐฑ์ค€ ์˜จ๋ผ์ธ ์ ธ์ง€(BOJ)์—์„œ ์ œ๊ณต ๋˜๋Š” 12094๋ฒˆ ๋ฌธ์ œ๋Š” ๊ทธ๋ฆฌ๋””(Greedy, ํƒ์š•๋ฒ•) ์œ ํ˜•์ด๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ๋Š” code.plus ์ค‘๊ธ‰ 1/3, ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๊ฒŒ์‹œ๋œ ๋ฌธ์ œ์ด๋‹ค. ๋ฌธ์ œ ์ˆ˜๋นˆ์ด๋Š” A์™€ B๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ์˜์–ด ๋‹จ์–ด๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋†€๋ž๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ AB (Abdominal์˜ ์•ฝ์ž), BAA (์–‘์˜ ์šธ์Œ ์†Œ๋ฆฌ), AA (์šฉ์•”์˜ ์ข…๋ฅ˜), ABBA (์Šค์›จ๋ด ํŒ ๊ทธ๋ฃน)์ด ์žˆ๋‹ค. ์ด๋Ÿฐ ์‚ฌ์‹ค์— ๋†€๋ž€ ์ˆ˜๋นˆ์ด๋Š” ๊ฐ„๋‹จํ•œ ๊ฒŒ์ž„์„ ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋‘ ๋ฌธ์ž์—ด S์™€ T๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, S๋ฅผ T๋กœ ๋ฐ”๊พธ๋Š” ๊ฒŒ์ž„์ด๋‹ค. ๋ฌธ์ž์—ด์„ ๋ฐ”๊ฟ€ ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘ ๊ฐ€์ง€ ์—ฐ์‚ฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฌธ์ž์—ด์˜ ๋’ค์— A๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. ๋ฌธ์ž์—ด์„ ๋’ค์ง‘๊ณ  ๋’ค์— B๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. ์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ ์ด์šฉํ•ด์„œ S๋ฅผ T๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” .. 2024. 2. 29.
๋ฐฑ์ค€ - [BOJ 2109] ์ˆœํšŒ๊ฐ•์—ฐ ๋ฐฑ์ค€ ์˜จ๋ผ์ธ ์ ธ์ง€(BOJ)์—์„œ ์ œ๊ณต ๋˜๋Š” 2019๋ฒˆ ๋ฌธ์ œ๋Š” ๊ทธ๋ฆฌ๋””(Greedy, ํƒ์š•๋ฒ•) ์œ ํ˜•์ด๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ๋Š” code.plus ์ค‘๊ธ‰ 1/3, ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๊ฒŒ์‹œ๋œ ๋ฌธ์ œ์ด๋‹ค. ๋ฌธ์ œ ํ•œ ์ €๋ช…ํ•œ ํ•™์ž์—๊ฒŒ n(0 ≤ n ≤ 10,000)๊ฐœ์˜ ๋Œ€ํ•™์—์„œ ๊ฐ•์—ฐ ์š”์ฒญ์„ ํ•ด ์™”๋‹ค. ๊ฐ ๋Œ€ํ•™์—์„œ๋Š” d(1 ≤ d ≤ 10,000)์ผ ์•ˆ์— ์™€์„œ ๊ฐ•์—ฐ์„ ํ•ด ์ฃผ๋ฉด p(1 ≤ p ≤ 10,000)๋งŒํผ์˜ ๊ฐ•์—ฐ๋ฃŒ๋ฅผ ์ง€๋ถˆํ•˜๊ฒ ๋‹ค๊ณ  ์•Œ๋ ค์™”๋‹ค. ๊ฐ ๋Œ€ํ•™์—์„œ ์ œ์‹œํ•˜๋Š” d์™€ p๊ฐ’์€ ์„œ๋กœ ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ๋‹ค. ์ด ํ•™์ž๋Š” ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, ๊ฐ€์žฅ ๋งŽ์€ ๋ˆ์„ ๋ฒŒ ์ˆ˜ ์žˆ๋„๋ก ์ˆœํšŒ๊ฐ•์—ฐ์„ ํ•˜๋ ค ํ•œ๋‹ค. ๊ฐ•์—ฐ์˜ ํŠน์„ฑ์ƒ, ์ด ํ•™์ž๋Š” ํ•˜๋ฃจ์— ์ตœ๋Œ€ ํ•œ ๊ณณ์—์„œ๋งŒ ๊ฐ•์—ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋„ค ๋Œ€ํ•™์—์„œ ์ œ์‹œํ•œ p๊ฐ’์ด ๊ฐ๊ฐ 50, 10, 20, 30์ด๊ณ , d๊ฐ’์ด .. 2024. 2. 29.