- 3. Linked List ๋งํฌ๋ ๋ฆฌ์คํธ๋? ํฌ์ธํฐ๋ก ์ฐ๊ฒฐ๋ ๋ ธ๋๋ค์ ์ปฌ๋ ์ ์ด๋ผ๊ณ ํ ์ ์๊ณ , ์คํ, ํ, ํด์ ํ ์ด๋ธ์ ๊ตฌํํ๋๋ฐ ์ฌ์ฉ๋ ์ ์๋ค. ์์ ์ง์ ์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๋ ๊ฒ์ O(1) ์์ ์๊ฐ์ด ์์๋๋ค. ๋ ธ๋ ํด๋์ค ์ฝ๋ ์์ public class Node { int val; Node next; ListNode() {} Node(int val) { this.val = val; } Node(int val, Node next) { this.val = val; this.next = next; } } ์ฝ๋ฉํ ์คํธ ํ ๐๏ธ Recursion๋ ์์์ผ ํ๊ณ ๊ทธ ์ด๋ ต๋ค๋ ํฌ์ธํฐ๋ฅผ ํ์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฆผ์ ๋ง์ด ๊ทธ๋ ค๋ณด๋ฉด์ ์ฝ๋๋ฅผ ๋ฐ๋ผ๊ฐ ๋ณด๋ ๊ฒ์ด ์ค์ํ๋ค. ๋ง์ฝ Easy ๋ฌธ์ ๋ ๋๋ฌด ์ด๋ ต๊ฒ ๋๊ปด์ง๋ค๋ฉด .. 2024.03.09
- 2. Arrays ๋ฐฐ์ด์ด๋? ๊ฐ์ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์์นํด ์ธ๋ฑ์ค๋ก ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ค. ๋ฐฐ์ด์ ํฌ๊ธฐ๋ ์์ฑํ ๋ ์ ํด์ง๋ฉฐ ํ ๋ฒ ์์ฑํ๋ฉด ์ฌ์ด์ฆ๋ ๊ณ ์ ์ด๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝํ ์ ์๋ค. ๋ง์ฝ ๋์ ๋ฐฐ์ด์ด ํ์ํ ๊ฒฝ์ฐ, ์๋ฐ์์๋ ArrayList๋ฅผ ์ฌ์ฉํ ์ ์๋ค(c++์์๋ vector). ์ฝ๋ฉํ ์คํธ ํ ๐๏ธ ๋ฐฐ์ด์ ๋์ค์ ์ด๋ ค์ด ๋ฌธ์ ๋ฅผ ํ ๋ ๊ธฐ๋ณธ์ผ๋ก ์๊ณ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด ๊ด๋ จ ์ฝ๋๋ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์์ฑํ ์ ์์ ๋งํผ ์ต์ํด์ ธ์ผ ํ๋ค. ๋ฐฐ์ด๊ด๋ จ ๋ฌธ์ ๋ ์ข ๋ฅ๋ ๋ค์ํ๊ณ ๋์ด๋๊ฐ ์ฒ์ ์ ํ๋ฉด ์๊ฐ๋ณด๋ค ์ด๋ ค์ด ๋ฌธ์ ๋ค์ด ๋ง๋ค. prefix sum, sliding window, two pointer ๊ฐ์ ๊ฐ๋ ์ ๋ฐฐ์ด ๋ฌธ์ ๋ฅผ ํ ๋ ์์๋๋ฉด ์ข๊ณ , HashMap๋ ๋ง์ด ํ์ฉํ๊ธฐ ๋๋ฌธ์ ํด์๋งต์ ๋ฉ์๋๋ฅผ.. 2024.03.02
- ์ ๋ฌด ํจ์จ์ ์ฌ๋ ค์ฃผ๋ Intellij ๋จ์ถํค (์๋์ฐ ๊ธฐ์ค) ์ธํ ๋ฆฌ์ ์ด์์ ํ์ฉํ ์ ์๋ ๋จ์ถํค ์ ๋ฆฌ 1. ๋ผ์ธ ๋ณต์ฌ CTRL + D 2. ๋ผ์ธ ์ญ์ CTRL + Y 3. ๋ผ์ธ ์๋ก ์ด๋ SHIFT + ALT + โฌ๏ธ 4. ๋ผ์ธ ์๋๋ก ์ด๋ SHIFT + ALT + โฌ๏ธ 5. ํ๊ธ์์ฉ ์ ํ SHIFT + โฌ ๏ธ/โก๏ธ 6. ๋จ์ด๋ณ๋ก ์ ํ SHIFT + CTRL + โฌ ๏ธ/โก๏ธ 7. ์์ฐ๋ import ์ง์ฐ๊ธฐ CTRL + SHIFT + O 8. ๋ณ์ ์ด๋ฆ ์์ฑ CTRL + ALT + V 9. ์ ์ฒด ์ฐพ๊ธฐ SHIFT ๋๋ฒ 10. ๋ค๋ก๊ฐ๊ธฐ CTRL + ALT + โฌ ๏ธ 11. ์์ผ๋ก ๊ฐ๊ธฐ CTRL + ALT + โก๏ธ 12. ํ๋ก์ ํธ ํด๋ ๋ทฐ๋ก ์ด๋ ALT + 1 13. ๋ธ๋ญ ์ฝ๋ฉํธ( /* */) CTRL + SHIFT + / 14. ์ฝ๋ ์ ๊ณ ํผ์น๊ธฐ CTRL + โ/โ 15... 2024.02.25
- Spring Boot file upload download rest api ์์ - 1 ๐ ์คํ๋ง ๋ถํธ๋ก ํ์ผ ์ ๋ก๋ ๋ค์ด๋ก๋ ๊ตฌํ ๋ฐฉ๋ฒ ์ฒซ ํ์ฌ์ ์์ต๊ณผ์ ๋ก ํ์ผ ์ ๋ก๋ ๋ค์ด๋ก๋ ๊ธฐ๋ฅ์ ๋ง๋ ์ ์ด ์๋๋ฐ ๊ฒ์์ ํ๋ฉด JSP๋ก ๊ตฌํ๋ ์์ ๊ฐ ๋ง์์ ํ๋ก ํธ๊ฐ React๋ Vue์ผ๋ ์ด๋ป๊ฒ ํ์ผ ์ ๋ก๋ ๋ค์ด๋ก๋ ๊ตฌํํด์ผ ํ๋์ง ๋ง๋งํ์๋ค. ๋คํ์ด ๊นํ๋ธ์์ ์ ์ ๋ฆฌ๋ ์ฝ๋๋ฅผ ์ฐพ์์ ๊ณผ์ ๋ฅผ ์ ๋ง๋ฌด๋ฆฌ ํ ์ ์์์ง๋ง ํด๋น ๊นํ๋ธ ์์ ๋ฅผ ์ฐธ๊ณ ํด์ ๊ตฌํ ํ ๋ ์์ฌ์ ๋ ์ ๊ณผ ๊ทธ๋๋ ์ ๋ชฐ๋๋ ๊ฒ๋ค์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. 1๏ธโฃ Failed to perform cleanup of multipart items ์๋ฌ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ ์คํ๋ง ๋ถํธ ๋ฒ์ ๋ณ๊ฒฝ์์ inputStream.close() ์ถ๊ฐํ๋ ๊ฑธ๋ก ์์ - Caused by: java.io.IOException: Cannot delete ๊ฒฝ๋ก\ํ์ผ์ด๋ฆ.. 2024.02.19
- ์๋ฐ iterators๋? ๐ฃ Java Iteration ๐ฃ Java์์ Map ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ณด๋ฉด for๋ฌธ์ ์ฌ์ฉํ ๋ฐฉ๋ฒ๊ณผ iterator๋ฅผ ์ฌ์ฉํ ๋ฐฉ๋ฒ 2๊ฐ์ง๊ฐ ์๋ค. ๊ทธ๋ฐ๋ฐ iterator๋ก Map์ ์ํํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ์ธํ ๋ฆฌ์ ์ด์์๋ ํฅ์๋ for๋ฌธ์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค๊ณ ํ๋ค. ์ธํ ๋ฆฌ์ ์ด์์ ์ถ์ฒํ๋๋๋ก enhanced 'for' loop์ผ๋ก ๋ฐ๊ฟ๋ณด๋ฉด ๊ธฐ์กด์ ์์ฑํ for๋ฌธ์ ํ์ฉํ Map ์ํ๋ฐฉ๋ฒ๊ณผ ๋๊ฐ์ด ๋ณ๊ฒฝ๋๋๋ฐ ํฅ์๋ for๋ฌธ์ ์ฌ์ค iterator object๋ฅผ ์ฌ์ฉํด์ ์ํํ๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ์์๊ฒ ๋ฐ๊ฟ๋์ ๊ฒ์ผ๋ก ๋ณผ ์ ์๋ค. (๋ฌผ๋ก , iterator๋ฅผ ์ฌ์ฉํ๋ฉด ์ํํ๋ ๋์ค์ ์ญ์ ๊ฐ ๊ฐ๋ฅํ์ง๋ง ํฅ์๋ for๋ฌธ์ ConcurrentModificationException์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ํ ๋์ค.. 2024.02.11
- ์๋ฐ์์ Map ์ํ ๋ฐฉ๋ฒ ๐ฃ Java์์ Map ์ํํ๋ ๋ฐฉ๋ฒ ๐ฃ ์๋ฐ์์ Map์ผ๋ก ๋ฐ๋ณต๋ฌธ์ ๋๋ฆด ๋ entrySet(), keySet() ๊ทธ๋ฆฌ๊ณ values()๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ ๊บผ๋ด์ฌ ์ ์๋ค. entrySet() : Map.Entry ํด๋์ค์ ์์ ๋ฐํ. entry.getKey() ๋ key๋ฅผ ๋ฐํํ๊ณ , entry.getValue()๋ value ๋ฆฌํด keySet() : ๋งต์ ์๋ ๋ชจ๋ keys๋ฅผ set์ผ๋ก ๋ฐํ values() : ๋งต์ ์๋ ๋ชจ๋ values๋ฅผ set์ผ๋ก ๋ฐํ Map ์ธํ Map map = new HashMap(); @BeforeEach void setUp() { map.put(1, "๋ธ๊ธฐ"); map.put(2, "์ฌ๊ณผ"); map.put(3, "๊ทค"); map.put(4, "๋ฐ๋๋"); map.put(.. 2024.01.27