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

์ „์ฒด ๊ธ€193

[์Šคํƒ] ๋ฐฐ์—ด ๊ธฐ๋ฐ˜ ์Šคํƒ๊ณผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๊ธฐ๋ฐ˜ ์Šคํƒ Stack ์Šคํƒ์€ ํ›„์ž…์„ ์ถœ์ด๋ผ๋Š” ๊ทœ์น™์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ ‘๊ทผํ•˜๋Š” ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ ์‚ฌ์šฉ ์˜ˆ์‹œ : ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋’ค๋กœ ๊ฐ€๊ธฐ ๊ธฐ๋Šฅ, ๋ฌธ์ž์—ด ์—ญ์ˆœ, ๊ด„ํ˜ธ ๊ฒ€์‚ฌ, ์‹คํ–‰ ์ทจ์†Œ ๊ธฐ๋Šฅ, ์žฌ๊ท€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์Šคํƒ์˜ ๊ฐœ๋… ์Šคํƒ์€ LIFO(Last In, First Out) ๋˜๋Š” FILO(First In, Last Out) ์›์น™์— ๋”ฐ๋ผ ์ž‘๋™ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์ด ์›์น™์€ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์‚ฝ์ž…๋œ ์š”์†Œ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์ œ๊ฑฐ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ADT(์ถ”์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž…) Push : ์Šคํƒ์˜ ๋งจ ์œ„์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. Pop : ์Šคํƒ์˜ ๋งจ ์œ„์—์„œ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ๊ทธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Peek : ์Šคํƒ์˜ ๋งจ ์œ„ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ, ์ œ๊ฑฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. IsEmpty : ์Šคํƒ์ด ๋น„์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด ๊ธฐ๋ฐ˜ ์Šคํƒ (Sta.. 2023. 11. 21.
[๋ฆฌ์ŠคํŠธ] ๋ฐฐ์—ด ๋ฆฌ์ŠคํŠธ์™€ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ์ƒํ™œ ์† ๋ฆฌ์ŠคํŠธ ์˜ˆ์‹œ ์œ„์‹œ ๋ฆฌ์ŠคํŠธ, ๋ธ”๋ž™ ๋ฆฌ์ŠคํŠธ, ์„œ๋น„์Šค๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‚ฌ๋žŒ ๋ฆฌ์ŠคํŠธ ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ADT(์ถ”์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž…) ๋ฆฌ์ŠคํŠธ์˜ ๊ธฐ๋ณธ ์ •์˜ ์ค„ ์„ธ์›Œ์ ธ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ADT i๋ฒˆ์งธ ์ž๋ฆฌ์— ์›์†Œ x๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค. i๋ฒˆ์งธ ์›์†Œ๋ฅผ ์‚ญ์ œํ•œ๋‹ค. ์›์†Œ x๋ฅผ ์‚ญ์ œํ•œ๋‹ค. i๋ฒˆ์งธ ์›์†Œ๋ฅผ ์•Œ๋ ค์ค€๋‹ค. ์›์†Œ x๊ฐ€ ๋ช‡ ๋ฒˆ์งธ ์›์†Œ์ธ์ง€ ์•Œ๋ ค์ค€๋‹ค. ๋ฆฌ์ŠคํŠธ์˜ ์‚ฌ์ด์ฆˆ(์›์†Œ์˜ ์ด ์ˆ˜)๋ฅผ ์•Œ๋ ค์ค€๋‹ค. ํŒŒ์ด์ฝ๋Šฅ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ธฐ๋ณธ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ œ๊ณตํ•˜๋ฉฐ, ์œ„ ์ž‘์—…๋ณด๋‹ค ํ›จ์”ฉ ๋” ๋งŽ์€ ์ž‘์—…์„ ์ง€์›ํ•จ ์ž๋ฐ”๋Š” ์–ธ์–ด ์ž์ฒด์—์„œ ๋ฆฌ์ŠคํŠธ๋ฅผ java.util ํŒจํ‚ค์ง€์—์„œ ์ œ๊ณตํ•จ ๋ฐฐ์—ด ๋ฆฌ์ŠคํŠธ ArrayList 1. ๊ตฌ์„ฑ์š”์†Œ ๋‚ด๋ถ€๋ฐฐ์—ด : ArrayList๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฐฐ์—ด(Object[])์„ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ. ์ด ๋ฐฐ์—ด์€ ํ•„์š”์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ํฌ๊ธฐ๊ฐ€ ์กฐ์ •๋จ. ์šฉ๋Ÿ‰ : .. 2023. 11. 21.
[๋ฉ”์„œ๋“œ] ArrayList ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ 2023.11.14 - [๐Ÿ–ฅ๏ธ ๋ฐฑ์—”๋“œ/Java] - [ch.11] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐœ์š” ๋ฐ List void trimToSize(): ArrayList์˜ ์šฉ๋Ÿ‰์„ ํ˜„์žฌ ๋ฆฌ์ŠคํŠธ ํฌ๊ธฐ์— ๋งž๊ฒŒ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ถˆํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์ค„์ด๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. void ensureCapacity(int minCapacity): ArrayList์˜ ์ตœ์†Œ ์šฉ๋Ÿ‰์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”์‹œ ๋‚ด๋ถ€ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ํ™•์žฅํ•˜์—ฌ ์ง€์ •๋œ ์šฉ๋Ÿ‰์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. Object[] grow(int minCapacity): ๋ฆฌ์ŠคํŠธ์˜ ์šฉ๋Ÿ‰์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ƒˆ๋กœ์šด ์šฉ๋Ÿ‰์œผ๋กœ ๋ฐฐ์—ด์„ ํ™•์žฅํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. int newCapacity(int minCapacity): ์ƒˆ๋กœ์šด ์šฉ๋Ÿ‰์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ๋„ ์ฃผ๋กœ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ.. 2023. 11. 21.
Stringํด๋ž˜์Šค ๋ฉ”์„œ๋“œ ๋ชจ์Œ ๋ฐ˜ํ™˜ํƒ€์ž…, ๋ฉ”์„œ๋“œ ์ด๋ฆ„, ๋งค๊ฐœ๋ณ€์ˆ˜๋งŒ ํ‘œ๊ธฐํ•จ int length(): ๋ฌธ์ž์—ด์˜ ๊ธธ์ด(๋ฌธ์ž ์ˆ˜)๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. boolean isEmpty(): ๋ฌธ์ž์—ด์ด ๋น„์–ด์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ 0์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. char charAt(int index): ์ง€์ •๋œ ์ธ๋ฑ์Šค์— ์žˆ๋Š” ๋ฌธ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. int codePointAt(int index): ์ง€์ •๋œ ์ธ๋ฑ์Šค์˜ ๋ฌธ์ž(UTF-16 ์ฝ”๋“œ ์œ ๋‹›)์— ํ•ด๋‹นํ•˜๋Š” ์œ ๋‹ˆ์ฝ”๋“œ ์ฝ”๋“œ ํฌ์ธํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. int codePointBefore(int index): ์ง€์ •๋œ ์ธ๋ฑ์Šค ์ด์ „์˜ ๋ฌธ์ž์— ํ•ด๋‹นํ•˜๋Š” ์œ ๋‹ˆ์ฝ”๋“œ ์ฝ”๋“œ ํฌ์ธํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. int codePointCount(int beginIndex, int endIndex): ์ฃผ์–ด์ง„ ์ธ๋ฑ์Šค ๋ฒ”์œ„ ๋‚ด์˜ ์œ ๋‹ˆ์ฝ”๋“œ ์ฝ”๋“œ .. 2023. 11. 21.
[ch.16] ๋„คํŠธ์›Œํ‚น ๋„คํŠธ์›Œํ‚น ๋‘ ๋Œ€ ์ด์ƒ์˜ ์ปดํ“จํ„ฐ๋ฅผ ์ผ€์ด๋ธ”๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ. ์ปดํ“จํ„ฐ๊ฐ„์˜ ์—ญํ•  ๊ตฌ๋ถ„ ์„œ๋ฒ„: ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ปดํ“จํ„ฐ ํด๋ผ์ด์–ธํŠธ: ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ปดํ“จํ„ฐ “์„œ๋น„์Šค” ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ๋ฐ›์€ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ. ์„œ๋ฒ„๊ฐ€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ ์„œ๋ฒ„ํ”„๋กœ๊ทธ๋žจ์ด ํ•„์š”ํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋ฒ„ํ”„๋กœ๊ทธ๋žจ๊ณผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์ด ํ•„์š”ํ•จ. ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ๋ชจ๋ธ ์„œ๋ฒ„๊ธฐ๋ฐ˜๋ชจ๋ธ: ์ „์šฉ์„œ๋ฒ„๋ฅผ ๋‘๋Š” ๊ฒƒ P2P๋ชจ๋ธ: ์ „์šฉ์„œ๋ฒ„X, ๊ฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—ญํ• ์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ. IP ์ปดํ“จํ„ฐ(ํ˜ธ์ŠคํŠธ)๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ณ ์œ ํ•œ๊ฐ’. IP์ฃผ์†Œ(๋„คํŠธ์›Œํฌ ์ฃผ์†Œ/ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ) InetAddress ํด๋ž˜์Šค InetAddressํด๋ž˜์Šค: IP์ฃผ์†Œ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค .. 2023. 11. 21.
[ch.15] ํ‘œ์ค€์ž…์ถœ๋ ฅ, ์ง๋ ฌํ™” ํ‘œ์ค€์ž…์ถœ๋ ฅ ๊ธฐ๋ณธ์ž…์ถœ๋ ฅ(BIOS), ํ•ญ์ƒ READY ์ฝ˜์†”์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ+ ์ฝ˜์†”๋กœ์˜ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ ์ž๋ฐ”์—์„œ ์ œ๊ณตํ•˜๋Š” ํ‘œ์ค€ I/O๋ฅผ ์œ„ํ•œ ์ž…์ถœ๋ ฅ์ŠคํŠธ๋ฆผ in / out / err Systemํด๋ž˜์Šค์— ์„ ์–ธ๋œ ํด๋ž˜์Šค๋ณ€์ˆ˜(static๋ณ€์ˆ˜). ์„ ์–ธ๋ถ€๋ถ„์—๋Š” InputStream, PrintStream์ด ์ ํ˜€์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” BufferedInputStream, BufferedOutputStream ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•จ. ์ฝ˜์†” ์ž…๋ ฅ์€ ๋ฒ„ํผ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ. ๊ทธ๋ž˜์„œ Backspace ํ‚ค๋ฅผ ์ด์šฉํ•œ ํŽธ์ง‘์ด ๊ฐ€๋Šฅ. ํ‘œ์ค€์ž…์ถœ๋ ฅ์˜ ๋Œ€์ƒ๋ณ€๊ฒฝ setOut( ), setErr( ), setIn( ) ๋‹ค๋ฅธ ์ž…์ถœ๋ ฅ ๋Œ€์ƒ์œผ๋กœ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•จ. RandomAccessFile ํด๋ž˜์Šค ์ด๋ฆ„์˜ ์˜๋ฏธ: ํ•ด๋‹น ํด๋ž˜์Šค๊ฐ€ ํŒŒ์ผ์„ ๋ฌด์ž‘์œ„(Rando.. 2023. 11. 21.
[ch.15] ์ž…์ถœ๋ ฅ I/O - ๋ฌธ์ž๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ ๋ฌธ์ž๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ ๋ฌธ์ž๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ์˜ ์กฐ์ƒ ๋ฐ”์ดํŠธ๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ์˜ ์กฐ์ƒ์ด InputStream/ OutputStream์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ฌธ์ž๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ์—๋Š” Reader/Writer๊ฐ€ ์กฐ์ƒ ์—ญํ• ์„ ํ•จ. byte๋ฐฐ์—ด ๋Œ€์‹  char๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•จ. ๋ฐ”์ดํŠธ๊ธฐ๋ฐ˜ : 1byte ๋ฌธ์ž๊ธฐ๋ฐ˜ : 2byte(char) +์ธ์ฝ”๋”ฉ ์—ฌ๋Ÿฌ์ข…๋ฅ˜์˜ ์ธ์ฝ”๋”ฉ/์ž๋ฐ”์˜ UTF-16๋ณ€ํ™˜ ์ž๋™์ฒ˜๋ฆฌ File R/W ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ํŒŒ์ผ์— ์“ฐ๋Š”๋ฐ ์‚ฌ์šฉํ•จ Piped R/W ์“ธ์ผ ๋ณ„๋กœ ์—†์Œ ์“ฐ๋ ˆ๋“œ๊ฐ•์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉํ•จ. ์ž…๋ ฅ์ŠคํŠธ๋ฆผ&์ถœ๋ ฅ์ŠคํŠธ๋ฆผ์„ ํ•˜๋‚˜์˜ ์ŠคํŠธ๋ฆผ์œผ๋กœ ์—ฐ๊ฒฐํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์Œ โ‘ ์ŠคํŠธ๋ฆผ ์ƒ์„ฑ โ‘ก์–ด๋Š ํ•œ์ชฝ ์“ฐ๋ ˆ๋“œ์—์„œ connect( )๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์ž…์ถœ๋ ฅ ์—ฐ๊ฒฐ โ‘ข์ž…์ถœ๋ ฅ ํ›„ ํ•œ์ชฝ ์ŠคํŠธ๋ฆผ๋งŒ ๋‹ซ์•„๋„ ๋‚˜๋จธ์ง€ ์ž๋™๋‹ซํž˜ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— .. 2023. 11. 21.