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

java8

[์ฑ„ํŒ… ํ”„๋กœ๊ทธ๋žจ] ํด๋ž˜์Šค ServerSocket๊ณผ Socket + TCP ์†Œ์ผ“ ์ฒ˜์Œ OSI 7๊ณ„์ธต์ด๋‚˜ TCP/IP ํ”„๋กœํ† ์ฝœ์„ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋˜๋Š” ํฐ ํ๋ฆ„์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜๊ฒŒ ๋œ๋‹ค. ์ „์†ก ํ๋ฆ„์€ ์•„์ฃผ ๊ฐ„๋‹จํ•˜๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์„ ์‹œ์ž‘์œผ๋กœ ์ „์†ก๊ณ„์ธต, ์ธํ„ฐ๋„ท ๊ณ„์ธต, ๋„คํŠธ์›Œํฌ ์•ก์„ธ์Šค ๊ณ„์ธต์„ ๊ฑฐ์ณ์„œ ๋ฐ์ดํ„ฐ ๋ฉ์–ด๋ฆฌ๋กœ ๋งŒ๋“ค์–ด์ง€๊ณ , ์ด๋ฅผ ์ƒ๋Œ€ ์„œ๋ฒ„์— ๋ณด๋‚ด๋ฉด ๊ฑฐ๊พธ๋กœ ๋„คํŠธ์›Œํฌ ์•ก์„ธ์Šค → ์ธํ„ฐ๋„ท → ์ „์†ก → ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์„ ๊ฑฐ์น˜๋ฉด์„œ ๋ฐ์ดํ„ฐ ๋ฉ์–ด๋ฆฌ์˜ ํฌ์žฅ์„ ํ’€๊ฒŒ ๋œ๋‹ค. ์ด ํ๋ฆ„์„ ๋ณด๋ฉด์„œ ๊ฐ€์žฅ ๊ถ๊ธˆํ–ˆ๋˜ ๊ฑด "๊ฐ ๊ณ„์ธต ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฃผ๊ณ  ๋ฐ›๋Š”์ง€"์˜€๋‹ค. ์ •ํ™•ํžˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ ์ „์†ก ๊ณ„์ธต์œผ๋กœ ํ˜น์€ ์ „์†ก ๊ณ„์ธต์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์œผ๋กœ ์ •๋ณด๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณด๋‚ด์ฃผ๋Š”์ง€๊ฐ€ ๊ถ๊ธˆํ–ˆ๋‹ค. ํ•˜๋‚˜์˜ ์„œ๋ฒ„์— A, B, C ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ˆ˜ํ–‰๋˜๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ๋Š”๋ฐ A.. 2021. 8. 15.
[์ฑ„ํŒ… ํ”„๋กœ๊ทธ๋žจ] ํด๋ž˜์Šค InetAddress InetAddress ํด๋ž˜์Šค ์ž๋ฐ”์—์„œ๋Š” IP์ฃผ์†Œ๋ฅผ InetAddress ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•œ๋‹ค. InetAddress๋ฅผ ํ†ตํ•ด์„œ ๋กœ์ปฌ ์„œ๋ฒ„(์ปดํ“จํ„ฐ)์˜ IP ์ฃผ์†Œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋„๋ฉ”์ธ์˜ IP ์ฃผ์†Œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๋กœ์ปฌ ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์–ป์œผ๋ ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด InetAddress ๊ฐ์ฒด์˜ getLocalHost() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋œ๋‹ค. ๋Œ€์‹  UnknownHostException์— ๋Œ€ํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. InetAddress์˜ ์ƒ์„ฑ์ž๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ํ•œ ๊ฐœ๋ฐ–์— ์—†๊ณ  ์ด๋งˆ์ €๋„ default ์ ‘๊ทผ ์ œ์–ด์ž๋กœ ๋˜์–ด ์žˆ์–ด์„œ ๋ณ„๋„์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜๋Š” ์—†๋‹ค. ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋ชปํ•˜๋Š” ๋Œ€์‹ ์— getLocalHost()์™€ ๊ฐ™์ด IP ์ฃผ์†Œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋“ค์ด ๋ช‡ ๊ฐ€์ง€ ์žˆ๋‹ค. ์ฃผ์š” ๋ฉ”์†Œ๋“œ ๋ฉ”์†Œ๋“œ ๋‚ด์šฉ getLocalH.. 2021. 8. 15.
[์ž๋ฐ”] Leetcode 1332 - Remove Palindromic Subsequences ์‹ซ์–ด์š”๊ฐ€ ์ข‹์•„์š”๋ณด๋‹ค 2๋ฐฐ ์ด์ƒ ๋งŽ์•„์„œ ๊ธด์žฅํ–ˆ๋Š”๋ฐ, ์ƒ๊ฐ๋ณด๋‹ค ๋‚˜์˜์ง€ ์•Š์•˜๋‹ค. ๋‚˜๋ฆ„ ๋ฐœ์ƒ์˜ ์ „ํ™˜์„ ํ•„์š”๋กœ ํ•ด์„œ ๋‚ด ์•„๋ฌด๋ž˜๋„ ๊ธฐ๋ณธ๋‹ค์ง€๊ธฐ๋ฅผ ์ข‹์•„ํ•˜๋Š” ๋ฆฌํŠธ์ฝ”๋“œ ์œ ์ €๋“คํ•œํ…Œ๋Š” ๋ณ„๋กœ์˜€๋‚˜๋ณด๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์ฃผ์–ด์ง€๋Š” ์•ŒํŒŒ๋ฒณ์ด a์™€ b๋ฟ์ด๋ผ๋Š” ์ ์ด ์—„์ฒญ๋‚œ ํžŒํŠธ๊ฐ€ ๋˜๊ณ , remove๋ฅผ ์‹ค์‹œํ•ด์•ผ ํ•˜๋Š” ํšŸ์ˆ˜๋งŒ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค๋Š” ์ ์ด ํ’€์ด๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค. ์ฃผ์–ด์ง„ ์ œํ•œ ์†์—์„œ ๊ฐ€๋Šฅํ•œ ๋‹ต์€ 3๊ฐ€์ง€ ๋ฟ์ด๋‹ค. 1) s๊ฐ€ null์ผ ๋•Œ → return 0 2) s๊ฐ€ Palindrome์ผ ๋•Œ → return 1 3) s๊ฐ€ Palindrome์ด ์•„๋‹ ๋•Œ → ๊ธ€์ž ํ•˜๋‚˜๋ฅผ ์ œ๊ฑฐํ•ด์„œ ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— return 2 ์ด์ค‘์—์„œ 1๋ฒˆ๊ณผ 2๋ฒˆ์€ ๋ฐ”๋กœ ์ดํ•ด๊ฐ€ ๋˜๋Š”๋ฐ, ๊ณผ์—ฐ 3๋ฒˆ์ด ์ •๋ง ๋ชจ๋“  ๊ฒฝ์šฐ์— ํ•ด๋‹น๋  ์ง€๊ฐ€ ์‚ฌ์‹ค ์ข€ ์˜๋ฌธ์ด๋‹ค. ์—ฌํƒœ ๋‚ด๊ฐ€ ๋งŒ.. 2021. 3. 9.
[์ž๋ฐ”] ๋ฆฌํŠธ์ฝ”๋“œ 706 - Design HashMap HashMap์€ Map์„ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์ด๊ธฐ ๋•Œ๋ฌธ์—, ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. ํ•ญ์ƒ ์ฃผ์–ด์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉ๋งŒ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋Š” ๊ณ ๋ฏผํ•ด๋ณด์ง€ ์•Š์•˜๋Š”๋ฐ ๋•๋ถ„์— bucket์ด๋ผ๋Š” ๊ฐœ๋…๋„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ๊ณต๋ถ€ํ•˜๋Š” ์ฐจ์›์—์„œ ํ‘ผ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ”๋กœ ํ’€์ด๋“ค์„ ์ข€ ์ฐพ์•„ ๋ณด์•˜๋‹ค. ์ฒซ ๋ฒˆ์งธ Solution ์–ด์ฐจํ”ผ key์˜ ๋ฒ”์œ„๊ฐ€ 0๋ถ€ํ„ฐ 1,000,000, ์ฆ‰ ๋ฐฑ๋งŒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ด์„œ ๊ตฌํ˜„ํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค. MyHashMap ํด๋ž˜์Šค ์ƒ์„ฑ ์‹œ์—, ํฌ๊ธฐ 1000001์ธ ๋ฐฐ์—ด์„ ์„ ์–ธํ•œ ๋‹ค์Œ์— index๋ฅผ ํ‚ค๊ฐ’์ฒ˜๋Ÿผ ์ƒ๊ฐํ•ด์„œ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„ : O(1) (get, remove, put ๋ชจ๋‘์— ํ•ด๋‹น๋œ๋‹ค) ๊ณต๊ฐ„ ๋ณต์žก๋„ : O(n) class MyHashMap { int[] .. 2021. 3. 7.