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. ์ด์ 1 2 ๋ค์