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

๐Ÿ–‹๏ธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜26

[๋ฉ”์„œ๋“œ] Deque ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ Deque ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ž๋ฐ”์˜ java.util ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ, ์–‘์ชฝ ๋์—์„œ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ์–‘๋ฐฉํ–ฅ ํ ์ด๊ฒƒ์€ ์Šคํƒ๊ณผ ํ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ํ†ตํ•ฉํ•œ ํ˜•ํƒœ๋กœ, ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Œ void addFirst(E e): ์š”์†Œ๋ฅผ ๋ฐํฌ์˜ ์•ž์ชฝ์— ์ถ”๊ฐ€ void addLast(E e): ์š”์†Œ๋ฅผ ๋ฐํฌ์˜ ๋’ค์ชฝ์— ์ถ”๊ฐ€ boolean offerFirst(E e): ์š”์†Œ๋ฅผ ๋ฐํฌ์˜ ์•ž์ชฝ์— ์‚ฝ์ž…ํ•˜๊ณ , ์„ฑ๊ณต ์‹œ true ๋ฐ˜ํ™˜ boolean offerLast(E e): ์š”์†Œ๋ฅผ ๋ฐํฌ์˜ ๋’ค์ชฝ์— ์‚ฝ์ž…ํ•˜๊ณ , ์„ฑ๊ณต ์‹œ true ๋ฐ˜ํ™˜ E removeFirst(): ๋ฐํฌ์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜ E removeLast(): ๋ฐํฌ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜ E pollFirst(): ๋ฐํฌ.. 2023. 12. 14.
[๋ฉ”์„œ๋“œ] Collections ํด๋ž˜์Šค ์ฃผ์š” ๋ฉ”์„œ๋“œ void sort(List list): ์ž์—ฐ ์ˆœ์„œ๋Œ€๋กœ ๋ฆฌ์ŠคํŠธ ์ •๋ ฌ void reverse(List list): ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ ์ˆœ์„œ๋ฅผ ์—ญ์ˆœ์œผ๋กœ ๋ณ€๊ฒฝ Comparator reverseOrder(): ์—ญ์ˆœ ์ž์—ฐ ์ •๋ ฌ Comparator ๋ฐ˜ํ™˜ void shuffle(List list): ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋ฅผ ์ž„์˜์˜ ์ˆœ์„œ๋กœ ์„ž์Œ T min(Collection list, int i, int j): ๋ฆฌ์ŠคํŠธ ๋‚ด ๋‘ ์š”์†Œ์˜ ์œ„์น˜ ๊ตํ™˜ Collection unmodifiableCollection(Collection c, Object o): ํŠน์ • ๊ฐ์ฒด๊ฐ€ ์ปฌ๋ ‰์…˜์— ๋‚˜ํƒ€๋‚˜๋Š” ํšŸ์ˆ˜ ๊ณ„์‚ฐ int indexOfSubList(List source, List target): ํ•˜๋‚˜์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋‹ค๋ฅธ ๋ฆฌ์ŠคํŠธ์— ์ฒ˜์Œ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ์œ„์น˜์˜ ์ธ๋ฑ์Šค ๋ฐ˜ํ™˜.. 2023. 12. 14.
[๊ทธ๋ž˜ํ”„] ์œ„์ƒ ์ •๋ ฌ, ์ตœ๋‹จ ๊ฒฝ๋กœ ์œ„์ƒ ์ •๋ ฌ ๋ชจ๋“  ๊ฐ„์„ ์— ๋Œ€ํ•ด ์„ฑ์งˆ์„ ๋งŒ์กฑํ•˜๋Š” ์ˆœ์„œ๋กœ ์ž‘์—…์„ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ ์œ„์ƒ ์ •๋ ฌ์€ ์‹ธ์ดํด์ด ์—†๋Š” ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ G=(V,E) ์—์„œ V์˜ ๋ชจ๋“  ์ •๋ค์„ ์ •๋ ฌํ•˜๋˜, '๊ฐ„์„  (i->j)๊ฐ€ ์กด์žฌํ•˜๋ฉด ์ •๋ ฌ ๊ฒฐ๊ณผ์—์„œ ์ •์  i๋Š” ์ •์  j ๋ณด๋‹ค ์•ž์— ์œ„์น˜ํ•œ๋‹ค.' ๋ผ๋Š” ์„ฑ์งˆ์„ ๋งŒ์กฑํ•ด์•ผํ•จ ์œ„์ƒ ์ •๋ ฌ์€ ์Šค์ผ€์ค„๋ง์ด๋‚˜, ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ–๊ณ  ์‹ธ์ดํด์ด ์—†๋Š” ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ ์ฐพ๊ธฐ์—๋„ ์“ฐ์ž„ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ž‘์—…์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋˜๊ธฐ๋„ ํ•จ ์ตœ๋‹จ ๊ฒฝ๋กœ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ ์ค‘ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชจ๋“  ๊ฐ„์„  ๊ฐ€์ค‘์น˜๊ฐ€ ์–‘์˜ ๊ฐ€์ค‘์น˜์ธ ์‹ธ์ดํด ๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Œ์˜ ๊ฐ€์ค‘์น˜๋ฅผ ํ—ˆ์šฉํ•˜์ง€๋งŒ, ๊ฐ€์ค‘์น˜ ํ•ฉ์ด ์–‘์ธ ์‹ธ์ดํด ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ•˜๋‚˜์˜ ์‹œ์ž‘ ์ •์ ์œผ๋กœ๋ถ€ํ„ฐ ๋‹ค๋ฅธ ๋ชจ๋“  ์ •์ ์— ์ด๋ฅด๋Š” ์ตœ.. 2023. 12. 8.
[๊ทธ๋ž˜ํ”„] ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ (ํ”„๋ฆผ/ํฌ๋ฃจ์Šค์นผ/์œ ๋‹ˆ์˜จ ํŒŒ์ธ) ์—ฐ๊ฒฐ ๊ทธ๋ž˜ํ”„ ๊ฐ„์„ ์˜ ๋ฐฉํ–ฅ์ด ์—†๋Š” ๊ทธ๋ž˜ํ”„์—์„œ ๋ชจ๋“  ์ •์ ๋“ค ๊ฐ„์— ๊ฐ„์„ ์„ ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„ ๊ทธ๋ž˜ํ”„ ์ด๋ก ์—์„œ 'ํŠธ๋ฆฌ'๋ž€ "์‹ธ์ดํด์ด ์—†๋Š” ์—ฐ๊ฒฐ๋œ ๊ทธ๋ž˜ํ”„"๋กœ ์ •์˜๋จ ํŠธ๋ฆฌ ์ตœ์†Œํ•œ์˜ ๊ฐ„์„ ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์—ฐ๊ฒฐ๋œ ๊ทธ๋ž˜ํ”„ ์‹ ์žฅ ํŠธ๋ฆฌ ๋น„์šฉ ๊ทธ๋ž˜ํ”„์˜ ๊ฐ„์„ ์— ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋‹ค๋ฉด, ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜๋ฅผ ๋‹ค ๋”ํ•œ ๊ฒƒ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋Š” ๋ฌดํ–ฅ ๊ทธ๋ž˜ํ”„๋กœ๋ถ€ํ„ฐ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์‹ ์žฅ ํŠธ๋ฆฌ ์ค‘, ๋น„์šฉ์ด ๊ฐ€์žฅ ๋‚ฎ์€ ํŠธ๋ฆฌ ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•˜๋‚˜์˜ ์ •์  ์ง‘ํ•ฉ์„ ์ ์  ํ‚ค์›Œ๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹ ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์—ฌ๋Ÿฌ ์ •์  ์ง‘ํ•ฉ์œผ๋กœ ์‹œ์ž‘ํ•ด์„œ ์ง‘ํ•ฉ๋“ค์„ ํ•ฉ์ณ๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹ ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ์ฐพ๋Š”๋‹ค๋Š” ๊ฒƒ์€ ๊ถ๊ทน์ ์œผ๋กœ |V|-1๊ฐœ์˜ ๊ฐ„์„ ์„ ์ฐพ๋Š” ๊ณผ์ • ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•„๋ฌด ๊ฐ„์„ ๋„ ์—†๋Š” ์ƒํƒœ์—์„œ ๊ฐ„์„ ์„ ํ•˜๋‚˜์”ฉ ๋”ํ•˜๋Š” ์ž‘์—…์„ .. 2023. 12. 8.
[๊ทธ๋ž˜ํ”„] ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰ BFS & ๊นŠ์ด์šฐ์„ ํƒ์ƒ‰ DFS ๋ชจ๋“  ์ •์ ์„ ๋ฐฉ๋ฌธํ•˜๋Š” ๋ฐฉ๋ฒ• : ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰ BFS, ๊นŠ์ด์šฐ์„ ํƒ์ƒ‰ DFS ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰ BFS ๋จผ์ € ๋ฃจํŠธ์˜ ์ž์‹์„ ์ฐจ๋ก€๋กœ ๋ฐฉ๋ฌธํ•จ ๋‹ค์Œ์œผ๋กœ ๋ฃจํŠธ ์ž์‹์˜ ์ž์‹, ๋ฃจํŠธ์—์„œ 2๊ฐœ์˜ ๊ฐ„์„ ์„ ๊ฑฐ์ณ์„œ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ •์  ๋ฐฉ๋ฌธ ๋ฃจํŠธ๋กœ๋ถ€ํ„ฐ 3๊ฐœ์˜ ๊ฐ„์„ ์„ ๊ฑฐ์ณ์„œ ๋„๋‹ค๋ž—๋Š” ์ •์ ๋“ค 4๊ฐœ, 5๊ฐœ... ์ˆœ์œผ๋กœ ๋ฐฉ๋ฌธํ•จ ๊นŠ์ด์šฐ์„ ํƒ์ƒ‰ DFS ๋ฃจํŠธ ์ž์‹ ์ •์ ์„ ํ•˜๋‚˜ ๋ฐฉ๋ฌธํ•œ ๋‹ค์Œ, ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ณณ๊นŒ์ง€ ๋‚ด๋ ค๊ฐ ๋” ์ด์ƒ ๋‚ด๋ ค๊ฐˆ ์ˆ˜๊ฐ€ ์—†์œผ๋ฉด ์œ„๋กœ ๋˜๋Œ์•„์˜ค๋‹ค๊ฐ€ ๋‚ด๋ ค๊ฐˆ ๊ณณ์ด ์žˆ์œผ๋ฉด ์ฆ‰๊ฐ ๋‚ด๋ ค๊ฐ BFS๋Š” ์˜†์œผ๋กœ ์ญ‰ ํ›‘์–ด ๋‚˜๊ฐ€๊ณ , DFS๋Š” ์•„๋ž˜๋กœ(๊นŠ์ด) ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฐ๊นŒ์ง€ ๊ฐ”๋‹ค๊ฐ€ ๋ง‰ํžˆ๋ฉด ๋˜๋Œ์•„์™€์„œ ๋‹ค์‹œ ๋‚ด๋ ค๊ฐ DFS์— ๊ธฐ๋ฐ˜ํ•œ ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์„ ๋ฐฑํŠธ๋ž˜ํ‚น ์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•จ BFS ์ˆ˜ํ–‰ ์ˆœ์„œ ์‹œ์ž‘ ์ •์ ์œผ๋กœ ์ •ํ•ด์ง„ ์ •์ ์„ ๋ฐฉ๋ฌธ(1๋กœ ํ‘œ์‹œ) ์ •์  1์— .. 2023. 12. 8.
[๊ทธ๋ž˜ํ”„] ๊ทธ๋ž˜ํ”„ ํ‘œํ˜„๋ฐฉ๋ฒ• ๊ทธ๋ž˜ํ”„ ํ˜„์ƒ์ด๋‚˜ ์‚ฌ๋ฌผ์„ ์ •์ ๊ณผ ๊ฐ„์„ ์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ ์ •์  ๋Œ€์ƒ์ด๋‚˜ ๊ฐœ์ฒด๋ฅผ ๋‚˜ํƒ€๋ƒ„ ๊ฐ„์„  ์ •์ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋ƒ„ ๊ฐ€์ค‘์น˜๋ฅผ ์ฃผ์–ด ์ •๋„๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ ๊ทธ๋ž˜ํ”„์˜ ํ‘œํ˜„ ์ „ํ†ต์ ์ธ ๊ทธ๋ž˜ํ”„ ํ‘œํ˜„๋ฒ•์—๋Š” ํ–‰๋ ฌ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Œ ์ธ์ ‘ ํ–‰๋ ฌ ํ–‰๋ ฌ ํ‘œํ˜„๋ฒ•์€ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ  ๊ฐ„์„ ์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ์ฆ‰๊ฐ ์•Œ ์ˆ˜ ์žˆ์Œ n*n ํ–‰๋ ฌ์ด ํ•„์š”ํ•˜๋ฏ€๋กœ n^2์— ๋น„๋ก€ํ•˜๋Š” ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๊ณ , ํ–‰๋ ฌ ์ค€๋น„ ๊ณผ์ •์—์„œ ํ–‰๋ ฌ์˜ ๋ชจ๋“  ์›์†Œ๋ฅผ ์ฑ„์šฐ๋Š” ๋ฐ๋งŒ n^2์— ๋น„๋ก€ํ•˜๋Š” ์‹œ๊ฐ„์ด ๋“ ๋‹ค ํ‘œํ˜„๋ฐฉ๋ฒ• ์ •์  i ์™€ ์ •์  j ์‚ฌ์ด์— ๊ฐ„์„ ์ด ์žˆ์œผ๋ฉด ํ–‰๋ ฌ (i,j) (j,i) ์›์†Œ์˜ ๊ฐ’์„ 1๋กœ ํ• ๋‹นํ•จ ๋ฐฉํ–ฅ์ด ์žˆ๋Š” ๊ฒฝ์šฐ i->j ๋ฅผ (i,j)๋กœ ํ‘œํ˜„ ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์›์†Œ์˜ ๊ฐ’์— ํ• ๋‹นํ•จ ๋‚˜๋จธ์ง€ ์ž๋ฆฌ์—๋Š” 0์„ ํ• ๋‹นํ•จ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ ๊ฐ ์ •์ ์— ์ธ์ ‘ํ•œ ์ •.. 2023. 12. 8.
[ํ•ด์‹œ ํ…Œ์ด๋ธ”] ์ถฉ๋Œ ํ•ด๊ฒฐ ์ถฉ๋Œ ์–ด๋–ค ํ‚ค๊ฐ€ ์ด๋ฏธ ์ž๋ฆฌ์žก๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ํ‚ค๊ฐ€ ์‚ฝ์ž…์„ ์‹œ๋„ํ•˜๋Š” ๊ฒƒ ๋™์ผํ•œ ์ฃผ์†Œ์— 2๊ฐœ ์ด์ƒ์˜ ํ‚ค๊ฐ€ ํ•ด์‹ฑ๋˜๋Š” ์ƒํ™ฉ ์ถฉ๋Œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ฒด์ด๋‹ ๊ฐœ๋ฐฉ ์ฃผ์†Œ ๋ฐฉ๋ฒ• ์ฒด์ด๋‹ ๊ฐ™์€ ์ฃผ์†Œ๋กœ ํ•ด์‹ฑ๋˜๋Š” ํ‚ค๋ฅผ ๋ชจ๋‘ ํ•˜๋‚˜์˜ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์— ๋งค๋‹ฌ์•„์„œ ๊ด€๋ฆฌํ•จ ํ•ด์‹œํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๊ฐ€ m์ด๋ฉด ์ตœ๋Œ€ m๊ฐœ์˜ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ ๊ฐ™์€ ์ฃผ์†Œ๋กœ ๋“ค์–ด์˜จ ํ‚ค๋“ค์€ ํ•ด๋‹น ํ—ค๋” ๋‹ค์Œ์— ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ๋งค๋‹ฌ๋ ค ์žˆ์Œ ์ฒด์ด๋‹์€ ์ž„์˜์˜ ํ‚ค๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ ํ•ด์‹œ๊ฐ’์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์— ์‚ฝ์ž…ํ•จ ๋ฆฌ์ŠคํŠธ์˜ ๋งจ ์•ž์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ ํ‚ค๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ํ•ด๋‹น ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ํ‚ค๋“ค์„ ์ฐจ๋ก€๋กœ ์ง€๋‚˜๊ฐ€๋ฉด์„œ ์ฐพ์Œ ์ ์žฌ์œจ์ด 1์„ ๋„˜์–ด๋„ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ์Œ ๊ฐœ๋ฐฉ ์ฃผ์†Œ ๋ฐฉ๋ฒ• ์ฒด์ด๋‹๊ณผ ๋‹ฌ๋ฆฌ ์ถ”๊ฐ€ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ. ์ถฉ๋Œ์ด ์ผ์–ด๋‚˜๋”๋ผ๋„ ์–ด๋–ป๊ฒŒ๋“  ์ฃผ์–ด์ง„ ํ…Œ์ด๋ธ” ๊ณต๊ฐ„์—์„œ ํ•ด๊ฒฐํ•จ ๋ชจ๋“  ํ‚ค.. 2023. 12. 8.