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

stack4

[Java] ์ž๋ฃŒ๊ตฌ์กฐ (Data Structures) - Collection 1. List ๊ณ„์—ด ๐Ÿ”— ์ž๋ฃŒ๊ตฌ์กฐ๋ž€?์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์กฐ์ง, ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ๊ณ„์ธต(Collection Framework Hierarchy) ์ž๋ฐ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ·๊ด€๋ฆฌ·๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ํ™”๋œ ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค๋“ค์˜ ๊ตฌ์กฐ์  ๊ณ„์ธต๋„ Collection ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์—ด + Map ๊ณ„์—ด๊นŒ์ง€ ํฌํ•จํ•œ ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ์ง€์นญ.์™œ "ํ”„๋ ˆ์ž„์›Œํฌ"์ธ์ง€?์ž๋ฐ”์—์„œ ๋ฐฐ์—ด(Array)๋งŒ์œผ๋กœ๋Š” ํฌ๊ธฐ ๋ณ€๊ฒฝ, ์ค‘๋ณต ์ œ๊ฑฐ, ์ •๋ ฌ, ํƒ์ƒ‰ ๋“ฑ ์‹ค๋ฌด์ ์ธ ์ž๋ฃŒ ๊ตฌ์กฐ ์š”๊ตฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์–ด๋ ค์›€.๊ทธ๋ž˜์„œ Sun/Oracle์—์„œ ๊ณตํ†ต๋œ ์„ค๊ณ„ ์›์น™ ์•„๋ž˜, ์ธํ„ฐํŽ˜์ด์Šค + ๊ตฌํ˜„์ฒด + ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ฌถ์–ด ์ œ๊ณตํ•œ ๊ฒŒ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ.์žฌ์‚ฌ์šฉ์„ฑ·์ผ๊ด€์„ฑ ํ™•๋ณด → ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งค๋ฒˆ ๊ตฌํ˜„ํ•  ํ•„์š” ์—†์Œ. ๐Ÿ“„ Java์˜ ์ž๋ฃŒ๊ตฌ์กฐArray โ””โ”€.. 2025. 9. 4.
[F-Lab Mentoring] JVM 1ํƒ„ ๐Ÿ–ฅ JVM์˜ ๊ตฌ์„ฑ์š”์†ŒJVM์€ javac๋กœ ๋ณ€ํ™˜๋œ "์ž๋ฐ” ๋ฐ”์ดํŠธ ์ฝ”๋“œ (.class) "๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์ƒ ์ปดํ“จํ„ฐ1. ํด๋ž˜์Šค ๋กœ๋” ์‹œ์Šคํ…œํด๋ž˜์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋กœ๋“œํ•˜๋Š” ์—ญํ• JVM์€ ๋ถ€๋ชจ ์šฐ์„ (Parent-First) ์œ„์ž„ ๋ชจ๋ธ๋กœ ๋กœ๋”ฉ ํด๋ž˜์Šค๋ฅผ ๋กœ๋“œํ•  ๋•Œ ๋จผ์ € ๋ถ€๋ชจ ๋กœ๋”์—๊ฒŒ ์œ„์ž„ํ•˜๊ณ , ๋ถ€๋ชจ๊ฐ€ ์ฐพ์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ž์‹ ์ด ์ง์ ‘ ๋กœ๋“œ 2. ๋Ÿฐํƒ€์ž„ ๋ฐ์ดํ„ฐ ์˜์—ญํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ๋…๋ฆฝ์ ์ธ ๊ณต๊ฐ„(Stack, PC, Native Stack)๊ณผ ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ ํ•˜๋Š” ๊ณต๊ฐ„(Heap, Metaspace)์œผ๋กœ ๋‚˜๋‰จ 3. ์‹คํ–‰ ์—”์ง„๋กœ๋“œ๋œ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ์‹ค์ œ ์‹คํ–‰ (interpreter, JIT Compiler, Garbage Collector) - Interpreter: ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ํ•œ.. 2025. 8. 31.
๊ฐ™์€ ์ˆซ์ž๋Š” ์‹ซ์–ด - Java [์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต] โค๏ธ Problem ๋”๋ณด๊ธฐ ๋ฌธ์ œ ๋ฐฐ์—ด arr๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ฐฐ์—ด arr์˜ ๊ฐ ์›์†Œ๋Š” ์ˆซ์ž 0๋ถ€ํ„ฐ 9๊นŒ์ง€๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, ๋ฐฐ์—ด arr์—์„œ ์—ฐ์†์ ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ์ˆซ์ž๋Š” ํ•˜๋‚˜๋งŒ ๋‚จ๊ธฐ๊ณ  ์ „๋ถ€ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, ์ œ๊ฑฐ๋œ ํ›„ ๋‚จ์€ ์ˆ˜๋“ค์„ ๋ฐ˜ํ™˜ํ•  ๋•Œ๋Š” ๋ฐฐ์—ด arr์˜ ์›์†Œ๋“ค์˜ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, arr = [1, 1, 3, 3, 0, 1, 1] ์ด๋ฉด [1, 3, 0, 1] ์„ return ํ•ฉ๋‹ˆ๋‹ค. arr = [4, 4, 4, 3, 3] ์ด๋ฉด [4, 3] ์„ return ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด arr์—์„œ ์—ฐ์†์ ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ์ˆซ์ž๋Š” ์ œ๊ฑฐํ•˜๊ณ  ๋‚จ์€ ์ˆ˜๋“ค์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ์ œํ•œ ์‚ฌํ•ญ return ๊ฐ’์€ ์ด์ง„์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. 1 ≤ bin1, bin2์˜.. 2022. 12. 1.
์ปจํŠธ๋กค ์ œํŠธ - Java [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ž…๋ฌธ] โค๏ธ Problem ๋”๋ณด๊ธฐ ๋ฌธ์ œ ์ˆซ์ž๋“ค์ด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์— ์žˆ๋Š” ์ˆซ์ž๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๋”ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ “Z”๊ฐ€ ๋‚˜์˜ค๋ฉด ๋ฐ”๋กœ ์ „์— ๋”ํ–ˆ๋˜ ์ˆซ์ž๋ฅผ ๋บ€๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์ˆซ์ž์™€ “Z”๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ๋จธ์“ฑ์ด๊ฐ€ ๊ตฌํ•œ ๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”. ์ œํ•œ ์‚ฌํ•ญ 0 < s์˜ ๊ธธ์ด < 1,000 -1,000 < s์˜ ์›์†Œ ์ค‘ ์ˆซ์ž < 1,000 s๋Š” ์ˆซ์ž, "Z", ๊ณต๋ฐฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. s์— ์žˆ๋Š” ์ˆซ์ž์™€ "Z"๋Š” ์„œ๋กœ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ์—ฐ์†๋œ ๊ณต๋ฐฑ์€ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 0์„ ์ œ์™ธํ•˜๊ณ ๋Š” 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ˆซ์ž๋Š” ์—†์Šต๋‹ˆ๋‹ค. s์˜ ์‹œ์ž‘๊ณผ ๋์—๋Š” ๊ณต๋ฐฑ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ˆซ์ž๋ฅผ ์ง€์šฐ๋Š” ๊ฒฝ์šฐ๋Š” ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง€์šธ ์ˆซ์ž๊ฐ€ ์—†๋Š” ์ƒํƒœ์—์„œ .. 2022. 11. 27.