Banner

My Tech Blog (์ž๋ฃŒ๊ตฌ์กฐ)

์˜ค๋Š˜์˜ ๋ช…์–ธ
1. ํ(queue)๋ž€ ๋ฌด์—‡์ธ๊ฐ€?'ํ(queue)' ๋ž€ '์ค„์„ ์„œ๋‹ค'๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํ๋Š” ๋จผ์ € ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋ฉฐ, ์ด๋Ÿฐ ํ์˜ ํŠน์ง•์„ FIFO(First In First Out) ๋˜๋Š” ์„ ์ž…์„ ์ถœ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ์—์„œ ์‚ฝ์ž…ํ•˜๋Š” ์—ฐ์‚ฐ์„ Enqueue(add) ๋ผ๊ณ  ํ•˜๊ณ , ๊บผ๋‚ด๋Š ์—ฐ์‚ฐ์„ Dequeue(Poll) ์ด๋ผ๊ณ  ํ•œ๋‹ค. 2. ํ์˜ ADT๊ตฌ๋ถ„์ •์˜์„ค๋ช…์—ฐ์‚ฐboolean isFull()ํ์— ๋“ค์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ maxsize ์ธ์ง€ ํ™•์ธ ํ•ด์„œ  boolean  ๊ฐ’์„ ๋ฐ˜ํ™˜boolean isEmpty()ํ์— ๋“ค์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋Š”์ง€ ํ™•์ธํ•ด์„œ boolean ๊ฐ’์„ ๋ฐ˜ํ™˜void add(ItemType item)ํ์— ๋ฐ์ดํ„ฐ ์‚ฝ์ž…ItemType poll()ํ์—์„œ ์ฒ˜์Œ์— ์‚ฝ์ž…ํ•œ ์ œ..
์Šคํƒ(Stack)๊ฐœ์š”"์Šคํƒ"์€ ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“์•„์„œ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, "ํ›„์ž…์„ ์ถœ(LIFO, Last In First Out)" ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค. ์ฆ‰, ๋‚˜์ค‘์— ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋Š” ๊ตฌ์กฐ์ด๋‹ค. ์Šคํƒ์€ ์ฃผ๋กœ ํ•จ์ˆ˜ ํ˜ธ์ถœ, ๊ณ„์‚ฐ๊ธฐ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ˆ˜์‹ ๊ณ„์‚ฐ, ๋˜๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ๋’ค๋กœ ๊ฐ€๊ธฐ ๊ธฐ๋Šฅ ๋“ฑ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.* ์ด์™€ ๋ฐ˜๋Œ€์˜ "์„ ์ž…์„ ์ถœ(FIFO, First In First Out)" ๊ตฌ์กฐ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ 'ํ'๋ผ๊ณ  ํ•œ๋‹ค.   ์Šคํƒ์„ ํ™œ์šฉํ•œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋Š” ์œ ํ˜•์ด ์ •ํ•ด์ ธ ์žˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์ž˜ ์ฝ์–ด๋ณด๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“์•„ ์˜ฌ๋ฆฐ๋‹ค๋“ ์ง€, ๋‚˜์ค‘์— ์Œ“์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉด ์Šคํƒ์„ ํ™œ์šฉํ•˜๋ฉด ๋œ๋‹ค.  ์Šคํƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ œ ์œ ํ˜• โœ… ๊ด„ํ˜ธ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์—์„œ ๊ด„ํ˜ธ์˜ ์ง์ด ๋งž๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฌธ์ œ์Šคํƒ์„ ์‚ฌ์šฉํ•ด ์—ฌ๋Š” ๊ด„ํ˜ธ๋Š” ์Šค..
์ •๋ ฌ(Sort)๊ฐœ์š”๋ฐ์ดํ„ฐ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ๋˜๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์—ดํ•˜๊ฑฐ๋‚˜ ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋ฅผ ์ •๋ ฌํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.  ์ •๋ ฌ์„ ํ™œ์šฉํ•œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋Š” ๋งค์šฐ ๋‹ค์–‘ํ•˜๋‹ค. ์ •๋ ฌ ๋ฌธ์ œ๋Š” ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ๋Š” ์ •๋ ฌ ๊ธฐ์ค€์„ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•˜๊ณ , ๊ทธ์— ๋งž๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ด์ง„ ํƒ์ƒ‰, ํˆฌ ํฌ์ธํ„ฐ, ๋นˆ๋„์ˆ˜ ๊ณ„์‚ฐ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์„ ์กฐํ•ฉํ•ด ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋“ค์ด ๋งŽ๋‹ค.  ์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ Arrays.sort() ๋ฅผ ์ด์šฉํ•ด์„œ ์ •๋ ฌํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋„ ์žˆ๊ณ , ์ •๋ ฌ ๊ธฐ์ค€์„ ์‚ฌ์šฉ์ž ์ •์˜ ๊ฐ์ฒด์— ๋งž๊ฒŒ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, Comparator ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฐ์ฒด๋ฅผ Collections.sort() ๋˜๋Š” Arrays.sort()์— ์ „๋‹ฌํ•˜์—ฌ ์ •๋ ฌํ•˜๋ฉด ๋˜๊ณ , ์ด ๋•Œ Java 8 ์ด์ƒ์—์„œ๋Š” Comparator๋ฅผ ๋žŒ๋‹ค ํ‘œํ˜„์‹์œผ๋กœ ..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๋ช…ํ•จ ์ง€๊ฐ‘์„ ๋งŒ๋“œ๋Š” ํšŒ์‚ฌ์—์„œ ์ง€๊ฐ‘์˜ ํฌ๊ธฐ๋ฅผ ์ •ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ชจ์–‘๊ณผ ํฌ๊ธฐ์˜ ๋ช…ํ•จ๋“ค์„ ๋ชจ๋‘ ์ˆ˜๋‚ฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉด์„œ, ์ž‘์•„์„œ ๋“ค๊ณ  ๋‹ค๋‹ˆ๊ธฐ ํŽธํ•œ ์ง€๊ฐ‘์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์š”๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ง€๊ฐ‘์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋””์ž์ธํŒ€์€ ๋ชจ๋“  ๋ช…ํ•จ์˜ ๊ฐ€๋กœ ๊ธธ์ด์™€ ์„ธ๋กœ ๊ธธ์ด๋ฅผ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค.์•„๋ž˜ ํ‘œ๋Š” 4๊ฐ€์ง€ ๋ช…ํ•จ์˜ ๊ฐ€๋กœ ๊ธธ์ด์™€ ์„ธ๋กœ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ธด ๊ฐ€๋กœ ๊ธธ์ด์™€ ์„ธ๋กœ ๊ธธ์ด๊ฐ€ ๊ฐ๊ฐ 80, 70์ด๊ธฐ ๋•Œ๋ฌธ์— 80(๊ฐ€๋กœ) x 70(์„ธ๋กœ) ํฌ๊ธฐ์˜ ์ง€๊ฐ‘์„ ๋งŒ๋“ค๋ฉด ๋ชจ๋“  ๋ช…ํ•จ๋“ค์„ ์ˆ˜๋‚ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ 2๋ฒˆ ๋ช…ํ•จ์„ ๊ฐ€๋กœ๋กœ ๋ˆ•ํ˜€ ์ˆ˜๋‚ฉํ•œ๋‹ค๋ฉด 80(๊ฐ€๋กœ) x 50(์„ธ๋กœ) ํฌ๊ธฐ์˜ ์ง€๊ฐ‘์œผ๋กœ ๋ชจ๋“  ๋ช…ํ•จ๋“ค์„ ์ˆ˜๋‚ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ์˜ ์ง€๊ฐ‘ ํฌ๊ธฐ๋Š” 4000(=80 x 50)์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ช…ํ•จ์˜ ๊ฐ€๋กœ ๊ธธ์ด์™€ ์„ธ๋กœ ๊ธธ์ด..
1. ๋ฌธ์ œ์„ค๋ช… ์˜ˆ์ œ #1๋ฌธ์ œ์— ๋‚˜์˜จ ์˜ˆ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ˆ์ œ #26๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค [A, B, C, D, E, F]๊ฐ€ ๋Œ€๊ธฐ ํ์— ์žˆ๊ณ  ์ค‘์š”๋„๊ฐ€ [1, 1, 9, 1, 1, 1] ์ด๋ฏ€๋กœ [C, D, E, F, A, B] ์ˆœ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ A๋Š” 5๋ฒˆ์งธ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.2. ์ ‘๊ทผ๋ฐฉ์‹2-1. ๋ฐฐ์—ด ์ชผ๊ฐœ๊ธฐ (์ถ”์ฒœํ•˜์ง€ ์•Š์ŒโŒ)๋ณด์ž๋งˆ์ž ์ตœ๋Œ€๊ฐ’์„ ์ฐพ์•„์„œ ์ตœ๋Œ€๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด์„ ์ชผ๊ฐœ์„œ ๋‹ค์‹œ ๋ถ™์ด๋ฉด ๋  ๊ฑฐ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. priorities ๋ฐฐ์—ด๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ์šฐ์„ ์ˆœ์œ„ max๊ฐ’์„ ์ฐพ๊ณ , ๊ทธ ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด์„ ๋‘ ๊ฐœ๋กœ ์ชผ๊ฐ  ๋‹ค์Œ, ์•ž ๋’ค๋กœ ์ด์–ด์„œ ๋ถ™์ด๋Š” ๊ฒƒ์ด๋‹ค. ๋˜๊ฒŒ ์‰ฝ๊ฒŒ ํ’€ ์ค„ ์•Œ์•˜๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ค์› ๊ณ  ์†”์งํžˆ ๊ณ„์† ์‹คํŒจํ–ˆ๋‹ค. ๋ฐฐ์—ด ์ชผ๊ฐœ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌ๊ธ€์—์„œ ์ฐพ์•„๊ฐ€๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ์“ฐ๋Š”๋ฐ ์จ ๋‚ด๋ ค ๊ฐˆ์ˆ˜๋ก ..
์•„.... ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ ๋‚˜๋งŒ ๋ณด๋ ค๊ณ  ์ด๋ ‡๊ฒŒ ์ž์„ธํ•˜๊ฒŒ ์ ์„ ์ƒ๊ฐ ์—†์—ˆ๋Š”๋ฐํ˜น์‹œ๋‚˜ ์ œ ๋ธ”๋กœ๊ทธ ๋“ค์–ด์˜ค์‹ค ์ˆ˜๋„ ์žˆ๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด์„œ ๊ทธ๋ƒฅ ๋‹ค ์š”์•ฝํ•ด์„œ ์ ์–ด ๋ด…๋‹ˆ๋‹ค ํŒŒ์ด์ฌ์˜ ์ž๋ฃŒ ๊ตฌ์กฐ ๋ฆฌ์ŠคํŠธ [ ]Square BracketSํŠœํ”Œ ( )Round Brackets์…‹ { }Braces๋”•์…”๋Ÿฌ๋‹ˆ { 'key:value' }  1. ๋ฆฌ์ŠคํŠธ(List)  - ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ์š”์†Œ๋ฅผ ๊ฐ–๋Š” ์ง‘ํ•ฉ,  - ์ƒˆ๋กœ์šด ์š”์†Œ ์‚ฝ์ž…, ๊ฐฑ์‹ , ์‚ญ์ œ ๊ฐ€๋Šฅ - ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋Š” ๋™์  ๋ฐฐ์—ด, ์ฆ‰ ์ž์œ ๋กญ๊ฒŒ ํ™•์žฅ ๊ฐ€๋Šฅ - [] ๋Œ€๊ด„ํ˜ธ ์‚ฌ์šฉ - ๊ฐ ์š”์†Œ๋“ค์€ ์„œ๋กœ ๋‹ค๋ฅธ ํƒ€์ž…๋„ ๊ฐ€๋Šฅ โœ… ๋ฆฌ์ŠคํŠธ ๋ฉ”์„œ๋“œ - # list.index(์š”์†Œ) ๋ฆฌ์ŠคํŠธ์—์„œ ํŠน์ • ์š”์†Œ ์œ„์น˜ ๊ฒ€์ƒ‰ - ์ฒซ๋ฒˆ์งธ ์‹œ์ž‘ํ•˜๋Š” ์œ„์น˜ ๋ฐ˜ํ™˜- # list.count(์š”์†Œ) ๋ฆฌ์ŠคํŠธ ์•ˆ์— ์œ„์น˜๊ฐ€ ํฌํ•จ๋œ ๊ฐœ์ˆ˜list ..
์ƒ๋‹จ์œผ๋กœ