Java18 [ํ๋ก๊ทธ๋๋จธ์ค] N๊ฐ์ ์ต์๊ณต๋ฐฐ์(Java) https://school.programmers.co.kr/learn/courses/30/lessons/12953 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr class Solution { public int solution(int[] arr) { int answer = 0; if (arr.length == 1){ return arr[0]; } int lcm = arr[0]; for (int i = 1; i < arr.length; i++){ lcm = getLeastCommonMultiple(lcm, arr[i]); } return lcm; } // .. 2023. 12. 1. [ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ณดํค (Java) https://school.programmers.co.kr/learn/courses/30/lessons/42890 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr import java.util.*; class Solution { public int solution(String[][] relation) { int answer = 0; int rowCount = relation.length; int columnCount = relation[0].length; // ์ธ๋ฑ์ค ๋ฐฐ์ด ์ด๊ธฐํ List arr = new ArrayList(); for (int i = 0;.. 2023. 12. 1. [JPA] ์ปค์ ๊ธฐ๋ฐ pagenation ๊ตฌํํ๊ธฐ ์ปค์ ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ Cursor ๊ฐ๋ ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ์๋ตํด์ค ๋ง์ง๋ง ๋ฐ์ดํฐ ๊ธฐ์ค์ผ๋ก ๋ค์ n๊ฐ ์์ฒญ/์๋ต offset ๊ธฐ๋ฐ ์ฟผ๋ฆฌ๊ฐ ๋ค์๊ณผ ๊ฐ๋ค๋ฉด SELECT * FROM items WHERE ์กฐ๊ฑด๋ฌธ ORDER BY id DESC OFFSET ํ์ด์ง๋ฒํธ LIMIT ํ์ด์ง์ฌ์ด์ฆ cursor ๊ธฐ๋ฐ ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ๋ค. SELECT * FROM items WHERE ์กฐ๊ฑด๋ฌธ AND id < ๋ง์ง๋ง์กฐํ_id ORDER BY id DESC LIMIT ํ์ด์ง์ฌ์ด์ฆ ์ง์ ์กฐํ ๊ฒฐ๊ณผ์ ๋ง์ง๋ง ๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ๋ก ๋ค์ด๊ฐ๋๋ฐ SQL ํค์๋๊ฐ ์๋ ๊ณ ์ ๋ ์กฐ๊ฑด๋ฌธ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ๋๋ฌธ์ ์ ์ ์ฟผ๋ฆฌ๋ก์์ ํ๊ณ๊ฐ ์๋ ๊ฒ ๊ฐ๋ค. (๋ฌผ๋ก ๋์ ์ฟผ๋ฆฌ์ธ QueryDSL์ ์ฌ์ฉํ๋ฉด ๋๋ค.) controller /** * ๊ฒ์๋ฌผ page .. 2023. 3. 1. [JPA] ์คํ์ ๊ธฐ๋ฐ Pagenation ๊ตฌํํ๊ธฐ Spring Data JPA์์๋ Pagination์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก Pageable ๊ฐ์ฒด๋ฅผ ์ ๊ณตํ๋ค. ์คํ์ ๊ธฐ๋ฐ Pagenation DB์ offset์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ‘ํ์ด์ง’ ๋จ์๋ก ๊ตฌ๋ถํ์ฌ ์์ฒญ/์๋ต ํ๋ค. controller /** * ๊ฒ์๋ฌผ page ์กฐํ * * @param pageable * @return Page */ @GetMapping(produces = APPLICATION_JSON_VALUE) public ApiResponse getPosts(@PageableDefault(sort = "id", direction = Sort.Direction.DESC) Pageable pageable) { Page pages = postService.findAll(pageable); ret.. 2023. 3. 1. [๋์์ธ ํจํด] ํผ์ฌ๋ ํจํด ํผ์ฌ๋ ํจํด (Facade Pattern) ํผ์ฌ๋ ํจํด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ, ํ๋ ์์ํฌ์ ๋ํ ๋๋ ๋ค๋ฅธ ํด๋์ค๋ค์ ๋ณต์กํ ์งํฉ์ ๋ํ ๋จ์ํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ๊ตฌ์กฐ์ ๋์์ธ ํจํด์ ๋๋ค. Facade๋ "๊ฑด๋ฌผ์ ์ ๋ฉด"์ ์๋ฏธํ๋ ๋จ์ด๋ก ์ด๋ค ์ํํธ์จ์ด์ ๋ค๋ฅธ ์ปค๋ค๋ ์ฝ๋ ๋ถ๋ถ์ ๋ํ์ฌ ๊ฐ๋ตํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํด์ฃผ๋ ๋์์ธ ํจํด์ ํ๋ค. ํผ์ฌ๋ ๊ฐ์ฒด๋ ๋ณต์กํ ์ํํธ์จ์ด ๋ฐ๊นฅ์ชฝ์ ์ฝ๋๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ชฝ ์ฝ๋์ ์์กดํ๋ ์ผ์ ๊ฐ์์์ผ ์ฃผ๊ณ , ๋ณต์กํ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉ ํ ์ ์๊ฒ ๊ฐ๋จํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํด์ค๋ค. ์ฅ์ : ๋ณต์กํ ํ์ ์์คํ ์์ ์ฝ๋๋ฅผ ๋ณ๋๋ก ๋ถ๋ฆฌํ์ฌ ํน์ ๊ธฐ๋ฅ์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉ๊ฐ๋ฅํ๋ค. : ํ๋์ ํผ์ฌ๋๋ฅผ ๊ด๋ จ ์๋ ๊ธฐ๋ฅ๋ค๋ก ์ค์ผ๋๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ด ํด๋น ์์คํ ์ ๋ํ ์์ง๋๊ฐ ๋๋ค.. 2023. 2. 18. [Java] List ์ ํจ์ฑ ๊ฒ์ฌ ๋ฆฌ๋ทฐ ๋ฐ์๋ค๐คฃ https://jihyehwang09.github.io/2020/04/13/java-list-null-check/ List.size() == 0 ๋ณด๋ค๋ List.isEmpty() ํผ๋๋ฐฑ ๋ฐ์ ๊ฒ๊ณผ ๊ฐ์ด isEmpty๊ฐ ๊ฐ๋ ์ฑ๋ฉด์ ์ง๊ด์ ์ด๋ค. ๋ฟ๋ง ์๋๋ผ, list์ ์ฌ์ด์ฆ๊ฐ 0์ด ์๋๊ฒฝ์ฐ size() ๋ฉ์๋๋ O(n)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ isEmpty() ๋ณด๋ค ๋น์ฉ์ด ๋ง์ด ๋ ๋ค. (isEmpty()๋ O(1)์ ์๊ฐ ๋ณต์ก๋) List null ์ฒดํฌ Java Spring ์ฌ์ฉ์์๋ ์ํ์น ๋ผ์ด๋ธ๋ฌ๋ฆฌ CollectionUtils.isEmpty()๋ฅผ ์ฌ์ฉํ์. import org.springframework.util.CollectionUtils; public class Main { pu.. 2022. 12. 1. ์ด์ 1 2 3 ๋ค์