๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

๐Ÿ’ป Computer Science/- Data Structure, Algorithm147

[์•Œ๊ณ ๋ฆฌ์ฆ˜-PS] Java ์—์„œ ์žฌ๊ท€ ํ˜ธ์ถœ๋กœ ํŒฉํ† ๋ฆฌ์–ผ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• ์žฌ๊ท€ ์žฌ๊ท€๋ž€ ๋ณธ๋ž˜์˜ ๊ฒƒ์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์„ ๋ง ํ•œ๋‹ค๊ณ  ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰์—์„œ ๋ฐœ์ทŒํ•ด ์™”๋‹ค. ์ด ๋ง์€ ์–ด๋–ค ์‚ฌ๊ฑด์ด ์ž๊ธฐ ์ž์‹ ์„ ํฌํ•จํ•˜๊ณ  ๋‹ค์‹œ ์ž๊ธฐ ์ž์‹ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜๋  ๋•Œ ์ด๋ฅผ ์žฌ๊ท€์ (Recursive) ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ณธ๋ž˜์˜ ๊ฒƒ์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„๊ฐ„๋‹ค๋Š” ๊ฒƒ์„ ์ข€๋” ์ง๊ด€์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ์ž๋ฉด ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์ด ๋ฐ”๋กœ ์žฌ๊ท€์ด๋‹ค. ์žฌ๊ท€ ํ˜ธ์ถœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋„ ์ด๋Ÿฐ ์žฌ๊ท€์  ํšจ๊ณผ๋ฅผ ์ด์šฉํ•˜๋ฉด ์ข€ ๋” ๊ฐ„๊ฒฐํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ตฌ์‚ฌํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์žฌ๊ท€ ํ˜ธ์ถœ์„ ๊ฐ€์žฅ ์ž˜ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ํŒฉํ† ๋ฆฌ์–ผ ์ด๋‹ค. ํŒฉํ† ๋ฆฌ์–ผ ํŒฉํ† ๋ฆฌ์–ผ์€ 1๋ถ€ํ„ฐ N ๊นŒ์ง€์˜ ๋ชจ๋“  ์ˆ˜๋ฅผ ๊ณฑํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋А๋‚Œํ‘œ๋กœ ํŒฉํ† ๋ฆฌ์–ผ์„ ์ •์˜ํ•œ๋‹ค. ์ด ๊ณผ์ •์„ ์ฝ”๋“œ๋กœ ๋งŒ๋“ค์–ด ๋ณด์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํŒฉํ† ๋ฆฌ์–ผ ํ•จ์ˆ˜ class Main { int factorialNonR.. 2020. 2. 21.
[์•Œ๊ณ ๋ฆฌ์ฆ˜-PS] Java ์—์„œ ํ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• Queue๋ž€ Stack ์ž๋ฃŒ๊ตฌ์กฐ์™€ ๋‹ค๋ฅด๊ฒŒ FIFO(First In First Out) ๋ฐฉ์‹์˜ ์„ ์ž… ์„ ์ถœ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค. ํ๋Š” ์ตœ๊ทผ ์‚ฌ์šฉ ๋ฌธ์„œ, ์ธ์‡„์ž‘์—… ๋Œ€๊ธฐ ๋ชฉ๋ก, ๋ฒ„ํผ ๋“ฑ์˜ ๋ถ„์•ผ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ ์Šคํƒ์€ ์œ„์—๋งŒ ๋šค๋ ค ์žˆ์–ด ์ž๋ฃŒ๊ฐ€ ํ•œ ๋ฐฉ์–‘์œผ๋กœ๋งŒ ํ๋ฅธ๋‹ค๋ฉด ํ๋Š” ์–‘ ๋ฐฉํ–ฅ์œผ๋กœ ๋šค๋ ค ํŒŒ์ดํ”„ ๊ฐ™์€ ๋ชจ์–‘์œผ๋กœ ์ž๋ฃŒ๊ฐ€ ํ๋ฅธ๋‹ค. ํ์˜ ์›๋ฆฌ ํ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด front์™€ rear๋กœ ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ์˜ ๊ฒฝ๊ณ„๋ฅผ ์•Œ๋ฆฐ๋‹ค. ํ์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋งŒ์•ฝ ํ๊ฐ€ ๋น„์–ด์žˆ๋‹ค๋ฉด front ์™€ rear์€ ๊ฐ™์€ ๊ณณ์„ ํ–ฅํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๊ณ  20 ๊ณผ 30 ์ด๋ž€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š”์ง€ ๋ด๋ณด์ž. front์™€ rear์˜ ํฌ์ธํ„ฐ๊ฐ€ ๋‹ฌ๋ผ์กŒ๋Š”๋ฐ ์ด๋Ÿฐ ์‹์œผ๋กœ ์ถ”๊ฐ€๋ฅผ ํ•œ๋‹ค๋ฉด rear += 1์œผ๋กœ rear์˜ ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉฐ rear์— .. 2020. 2. 16.
[์•Œ๊ณ ๋ฆฌ์ฆ˜-PS] Java ์—์„œ ์Šคํƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ด ๊ธ€์€ Stack์˜ ์‹ค์งˆ์  ์‚ฌ์šฉ๋ณด๋‹ค๋Š” ์ž๋ฐ”์—์„œ ์Šคํƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์— ๋ชฉ์ ์„ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ž๋ฐ”์—์„œ ์–ด๋–ป๊ฒŒ ์Šคํƒ์ด ์‚ฌ์šฉ๋˜๋Š”์ง€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ๋ณ€์ˆ˜๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๋‹ด๊ธฐ๋Š” ๊ณผ์ • ์Šคํƒ ํ”„๋ ˆ์ž„ ๋˜๋Š” JRE์™€ JVM์ด ์–ด๋–ป๊ฒŒ ์‹คํ–‰๋ ๊นŒ?์˜ ๊ธ€์„ ๊ฐ€๋ณ๊ฒŒ ์ฝ๊ณ  ์™€ ์ฃผ์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์Šคํƒ Stack ๊ธฐ์ˆ  ์Šคํƒ (๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ์Šต๋“ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ ์„ ๋‹จ๊ณ„์ ์œผ๋กœ ์Œ“์•„ ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ) ๋“ฑ์— ์“ฐ์ด๋Š” ๋ง์ธ ์Šคํƒ์€ ๋ฌด์–ธ๊ฐ€๋ฅผ ์Œ“์•„ ์˜ฌ๋ฆฐ๋‹ค ๋ผ๋Š” ํ‘œํ˜„์œผ๋กœ ์ดํ•ดํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค. ์Šคํƒ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํƒ„์ƒํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, ๊ฐ€์žฅ ๋‚˜์ค‘์— ๋„ฃ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๊บผ๋‚ธ๋‹ค. ์ด๋ฅผ ์ „๋ฌธ ์šฉ์–ด๋กœ ํ›„์ž…์„ ์ถœ (LIFO, Last In First Out) ์ด๋ผ๊ณ  ํ•œ๋‹ค. ํ‘ธ์‹œ (PUSH) ์Šคํƒ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ์ž‘์—…์„ ๋œป ํ•œ๋‹ค. ํŒ (.. 2020. 2. 14.
[์•Œ๊ณ ๋ฆฌ์ฆ˜-PS] Java ์—์„œ ์ด์ง„ ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ด์ง„ ๊ฒ€์ƒ‰์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ ์šฉ๋˜๋Š” ์ „์ œ ์กฐ๊ฑด์€ ๋ฐ์ดํ„ฐ๊ฐ€ ํ‚ค ๊ฐ’์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฐ€์ •์—์„œ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•™์Šต์ด ํ•„์š”ํ•œ ์‚ฌ๋žŒ์€ ์„ ํƒ ์ •๋ ฌ ์— ๋“ค์–ด๊ฐ€์„œ ๊ฐ€๋ณ๊ฒŒ ์ฝ๊ณ  ์˜ค์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด์ง„ ๊ฒ€์ƒ‰ ์ด์ง„ ๊ฒ€์ƒ‰์€ ๋ฐฐ์—ด์˜ ์š”์†Œ๊ฐ€ ๋‚ด๋ฆผ์ฐจ์ˆœ, ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์—์„œ ๊ฒ€์ƒ‰์„ ์ง„ํ–‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋‹ค. ์ด์ง„ ๊ฒ€์ƒ‰์˜ ๋ฐฐ์—ด์„ ์ ˆ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆˆ ๋’ค ๊ทธ ์ค‘๊ฐ„ ๊ฐ’๋ณด๋‹ค ํฌ๋ฉด ๋˜ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜์—ฌ ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.. ์ด์ง„ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ์•Œ์•„์•ผ ํ•  ์šฉ์–ด๋ฅผ ์ •์˜ํ•ด๋ณด์ž. start ๋ฐฐ์—ด์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค (๊ฒ€์ƒ‰ ๋ฒ”์œ„์˜ ์‹œ์ž‘) center ๋ฐฐ์—ด์˜ ์ค‘๊ฐ„ ์ธ๋ฑ์Šค (๊ฒ€์ƒ‰ ๋ฒ”์œ„์˜ ์ค‘๊ฐ„) end ๋ฐฐ์—ด์˜ ๋ ์ธ๋ฑ์Šค (๊ฒ€์ƒ‰ ๋ฒ”์œ„์˜ ๋) ์ด์ง„ ๊ฒ€์ƒ‰์„ ์œ„ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ ํ•˜์˜€์œผ๋ฉด ์ด์ œ ๊ตฌ.. 2020. 2. 13.
[์•Œ๊ณ ๋ฆฌ์ฆ˜-PS] Java์—์„œ ์„ ํ˜• ๊ฒ€์ƒ‰ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•. ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ค‘ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๋ฉฐ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฒ˜์Œ ํ•™์Šตํ•œ๋‹ค๋ฉด ํ•„์ˆ˜๋กœ ์•Œ์•„์•ผ ํ•œ๋‹ค. ์„ ํ˜• ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •์˜ ์„ ํ˜• ๊ฒ€์ƒ‰์ด๋ž€ ์š”์†Œ๊ฐ€ ์ง์„  ๋ชจ์–‘์œผ๋กœ ๋Š˜์–ด์„  ๋ฐฐ์—ด์—์„œ ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ๊ธฐ ์œ„ํ•ด 0๋ฒˆ์งธ index์—์„œ ๋ถ€ํ„ฐ ๋ฐฐ์—ด์˜ ๋๊นŒ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ index๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ฐ’์„ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ข…๋ฃŒ ์กฐ๊ฑด ์กฐ๊ฑด 1 : ๊ฒ€์ƒ‰ํ•  ๊ฐ’์„ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋ฐฐ์—ด์˜ ๋์„ ์ง€๋‚˜๊ฐ„ ๊ฒฝ์šฐ ์กฐ๊ฑด 2 : ๊ฒ€์ƒ‰ํ•  ๊ฐ’๊ณผ ๊ฐ™์€ ์š”์†Œ๋ฅผ ๋ฐœ๊ฒฌํ•œ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์ž…๋ ฅ ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ n ์ธ ๊ฒฝ์šฐ n/2 ์†Œ์Šค ์ฝ”๋“œ ์‹คํ–‰ ๊ฒฐ๊ณผ ์„ ํ˜• ๊ฒ€์ƒ‰์˜ ๋ณด์ดˆ๋ฒ• ์„ ํ˜• ๊ฒ€์ƒ‰์€ ๋ฐ˜๋ณตํ•  ๋•Œ ๋งˆ๋‹ค ์ข…๋ฃŒ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๊ฒ€์‚ฌํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋น„์šฉ์„ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ ์„ ํ˜•๊ฒ€์ƒ‰์˜ ๋ณด์ดˆ๋ฒ•์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ณด์ดˆ๋ฒ•์€ arr[0] ~ arr[5] ๊นŒ์ง€ ์žˆ.. 2020. 2. 12.
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์Šคํ‚ฌ] ์ž๋ฐ”์—์„œ intํ˜• ์ˆซ์ž์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•. feat. ๋ฐฑ์ค€ 2577๋ฒˆ 211300291๋Š” ๋ช‡ ์ž๋ฆฌ ์ˆ˜ ์ผ๊นŒ? ๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 2577๋ฒˆ:์ˆซ์ž์˜ ๊ฐœ์ˆ˜ 2577๋ฒˆ: ์ˆซ์ž์˜ ๊ฐœ์ˆ˜ ์ฒซ์งธ ์ค„์— A, ๋‘˜์งธ ์ค„์— B, ์…‹์งธ ์ค„์— C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. A, B, C๋Š” ๋ชจ๋‘ 100๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํฌ๊ณ , 1,000๋ณด๋‹ค ์ž‘์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. www.acmicpc.net ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค ๋ณด๋‹ˆ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ์˜ ์ž๋ฆฌ ์ˆ˜๋ฅผ ์•Œ์•„์•ผํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋‚˜์™”๋Š”๋ฐ ์ด๋Ÿฐ ๋น„์Šทํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™์•„์„œ ๊ณต์œ ํ•˜๊ณ ์ž ํ•œ๋‹ค. ์ˆซ์ž์˜ ์ž๋ฆฌ์ˆ˜๋ฅผ ํ™•์ธํ•  ๋•Œ๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค. int ํ˜• ๋ณ€์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ• Math ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ์ž๋ฆฌ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ• ์‚ฌ์‹ค ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์—๋Š” 1๋ฒˆ ๋ฐฉ๋ฒ•์ด ํ›จ์”ฌ ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ  ํŽธํ•˜์ง€๋งŒ, ํŠน์ • ์ƒํ™ฉ์—์„œ๋„ ์–ธ์  ๊ฐ„ ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋Š” Math ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•๋„.. 2020. 1. 20.