- merge sort
- datagrip
- node js
- spring ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ
- Spring
- MAKE US
- SSL
- OpenAPI
- Data Structure
- SQL
- Quick Sort
- Unity
- @CreatedDate
- GIT
- ๋ฆฌ๋ ์ค ๋ช ๋ น์ด
- spring ์์ ๋ก๊ทธ์ธ
- ์์คํ ์ํํธ์จ์ด
- C++
- Rp2๊ธฐ
- RP 2๊ธฐ
- DATABASE
- aligoapi
- docker
- java error
- Java
- ํจ์คํธ์บ ํผ์คX์ผ๋์
- MethodArgumentNotValidException
- spring์ผ๋ก https ์ ์ฉ
- ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ
- mysql
๋ชฉ๋ก์ ์ฒด ๊ธ (129)
YS's develop story

๐ฅ MySQL ์๊ฐ ์ฐจ์ด ๊ณ์ฐํ๊ธฐ (TIMESTAMPDIFF ํจ์) โ Problem ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ค ๋ณด๋ฉด ์๊ฐ ์ฐจ์ด๋ฅผ ํ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์์ฝ์๊ฐ 30๋ถ ์ ์๋ ์์ฝ์ ๋ถ๊ฐ๋ฅํ๋๋ก ๋ง์์ผ ํ๋ค๊ฑฐ๋ ํน์ ์ด๋ฒคํธ์ผ์ด ํ์ฌ๋ถํฐ ์ผ๋ง๋ ๋จ์๋์ง ๋ฑ๋ฑ์ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ ๊ฒ์ ๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ ์ด๋ป๊ฒ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํด์ผ ํ ๊น์? ๐ ๐ Solution TIMESTAMPDIFF๋ผ๋ ํจ์๋ฅผ ํ์ฉํ๋ฉด ๋งค์ฐ ์ฝ๊ฒ ์๊ฐ ์ฐจ์ด๋ฅผ ๊ณ์ฐํ ์ ์์ต๋๋ค. SELECT TIMESTAMPDIFF(HOUR,'2021-08-22 11:00','2021-08-22 14:00') AS dayCount; SELECT TIMESTAMPDIFF(์๊ฐ ๋จ์, '๋ ์ง 1', '๋ ์ง 2') AS ์ด๋ฆ; ์์ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ํตํด์ ..

๐ฉ๐ป ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ with Python ๐ฅ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ (Dijkstra Algorithm)์ด๋? ๋ ๋ ธ๋๋ฅผ ์๋ ๊ฐ์ฅ ์งง์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฌธ์ (๊ฐ์ค์น ํฉ์ด ์ต์๊ฐ ๋๋๋ก ํ๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฌธ์ )์์ ํ๋์ ์ ์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ ์ ๊ฐ์ ๊ฐ๊ฐ ๊ฐ์ฅ ์งง์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์ฒซ ์ ์ ์ ๊ธฐ์ค์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ ์ ์ ๋ค์ ์ถ๊ฐํด ๊ฐ๋ฉฐ, ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐฑ์ ํ๋ ๊ธฐ๋ฒ์ ๋๋ค. ์ฐ์ ์์ ํ๋ฅผ ํ์ฉํ์ฌ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํด ๋ณด๊ฒ ์ต๋๋ค. 1. ์ด๊ธฐํ ์ฒซ ์ ์ ์ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์ด์ ์ ์ธํ์ฌ ์ฒซ ์ ์ ์์ ๊ฐ ์ ์ ๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด๊ธฐ์๋ ์ฒซ ์ ์ ์ ๊ฑฐ๋ฆฌ๋ 0, ๋๋จธ์ง๋ ๋ฌดํ๋๋ก ์ ์ฅํฉ๋๋ค. (inf๋ผ๊ณ ํํํจ) ์ฐ์ ์์ ํ์ (์ฒซ ์ ์ , ๊ฑฐ๋ฆฌ 0)๋ง ๋จผ์ ๋ฃ์ต๋๋ค. 2. ์ฐ์ ์์ ํ์..

๐ฉ๐ป ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ (ํ์๋ฒ) ์ ๋ฆฌ with Python ๐ฅ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ (Greedy Algorithm)์ด๋? 1. ๋งค ์๊ฐ ์ต์ ์ด๋ผ๊ณ ์๊ฐ๋๋ ๊ฒฝ์ฐ๋ฅผ ์ ํํ๋ ๋ฐฉ์์ผ๋ก ์งํํด์ ์ต์ข ์ ์ธ ๊ฐ์ ๊ตฌํ๋ ๋ฐฉ์์ ๋๋ค. 2. ๊ฐ๊ฐ์ ์ ํ์ ๊ทธ ์๊ฐ ๋ณด์์ ๋๋ ๊ฐ์ฅ ์ข์ ๋ณด์ด์ง๋ง ๋์ค์๋ ์ต์ ์ ํด๊ฐ ์๋ ์ ์์ต๋๋ค. 3. ์ฆ ๋งค ์๊ฐ์ ์ ํ์ locally optimal ํ์ง๋ง globally optimalํ์ง ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ์ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ต์ ํด๋ฅผ ์ป์ ์ ์๋ ๊ฒ์ด ์กด์ฌํฉ๋๋ค. ๐ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ์์ 1 - ๋์ ๋ฌธ์ ์ง๋ถํด์ผ ํ๋ ๊ฐ์ด 7870์ ์ผ ๋ ๊ฐ์ฅ ์ ์ ์์ ๋์ผ๋ก ์ง๋ถํ๋ ๋ฐฉ๋ฒ์ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํ์ฌ ๊ตฌํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ํฐ๋๋ถํฐ ์ต๋ํ ์ง๋ถํด์ผ ํ๋ ๊ฐ์ ์ฑ์ฐ..

๐จ๐ผ๐ป ์๋ฆฌ๊ณ ์นด์นด์ค ์๋ฆผํก API ์ฐ๋ํ๊ธฐ (with Node js) โ Problem ํน์ ์ด๋ฒคํธ๊ฐ ์ผ์ด๋ฌ์ ๋ ํน์ ์ ์ ์๊ฒ ์นด์นด์ค ์๋ฆผํก์ ์ด๋ป๊ฒ ๋ณด๋ผ ์ ์์ ๊น์? ๐ ์๋ฆฌ๊ณ ์๋น์ค๋ฅผ ํ์ฉํด์ Node js๋ก ์ด๋ฅผ ๊ตฌํํด ๋ณด๊ฒ ์ต๋๋ค. ๐ Solution ์๋ฆฌ๊ณ ์๋ฆฌ๊ณ - ๊ตญ๋ด ์ต์ ๊ฐ ๋ฌธ์๋ฐ์ก ์๋ฆฌ๊ณ ์ค๋งํธ๋ฌธ์, ๋จ๋ฌธ8.4์ ์ฅ๋ฌธ25์ ๊ทธ๋ฆผ60์ ์๋ฆฌ๊ณ ๋๋๋ฌธ์/๋จ์ฒด๋ฌธ์/๋ฌธ์์ฌ์ดํธ/๋ฌธ์๋ฐ์ก smartsms.aligo.in:443 ์นด์นด์ค ์๋ฆผํก์ ๋ณด๋ด๊ธฐ ์ํด์๋ ์์ ๊ฐ์ ์ฌ์ดํธ์ ๊ฐ์ ์ ํด์ผ ํฉ๋๋ค. ์๋ฆผํก์ ๋ณด๋ด๋ ๊ธฐ๋ฅ์ ๊ฑด๋น 6์ ์ ๋๊ฐ ๋ฐ์ํ๋ ์ ๋ฃ ์๋น์ค์ ๋๋ค. ์๋ฆผํก์ ๋ณด๋ด๊ธฐ ์ํด์๋ ์นด์นด์ค ์ฑ๋์ด ๋ฑ๋ก๋์ด ์์ด์ผ ํฉ๋๋ค. ๋ํ ์๋ฆผํก์ ๋ณด๋ด๊ธฐ ์ํด์๋ ํ ํ๋ฆฟ์ ๋ฏธ๋ฆฌ ์์ฑํ์ฌ์ผ ํฉ๋๋ค..

๐ฉ๐ป ๋๋น ์ฐ์ ํ์ (BFS), ๊น์ด ์ฐ์ ํ์ (DFS) ์ ๋ฆฌ with Python ๐ฅ ๋๋น ์ฐ์ ํ์ (Breadth-First-Search) Node ๊ฐ์ ๋ ๋ฒจ์ ์๋ Node๋ค (ํ์ Node๋ค)์ ๋จผ์ ํ์ํ๋ ๋ฐฉ์์ ๋๋ค. ํ์ด์ฌ์ ์ด์ฉํ ๊ทธ๋ํ ํํ ์ฝ๋ graph = dict() graph['A'] = ['B', 'C'] graph['B'] = ['A', 'D'] graph['C'] = ['A', 'G', 'H', 'I'] graph['D'] = ['B', 'E', 'F'] graph['E'] = ['D'] graph['F'] = ['D'] graph['G'] = ['C'] graph['H'] = ['C'] graph['I'] = ['C', 'J'] graph['J'] = ['I'] ๋๋น..

๐ฉ๐ป ์์ฐจ ํ์(Sequential Search)๊ณผ ์ด์ง ํ์(Binary Search) ์ ๋ฆฌ ๐ฅ ์์ฐจ ํ์(Sequential Search) ๋ฐ์ดํฐ๊ฐ ๋ด๊ฒจ์๋ ๋ฆฌ์คํธ๋ฅผ ์์์๋ถํฐ ํ๋์ฉ ์ดํด๋ณด์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๐ ์์ฐจ ํ์ ์ฝ๋ def sequentialSearch(list, search): for index in range(len(list)): if list[index] == search: return True return False โ๏ธ ์์ฐจ ํ์ ์๊ฐ ๋ณต์ก๋ ์ฐพ๊ณ ์ ํ๋ ๊ฐ์ด ๋ฆฌ์คํธ์ ๋งจ ๋ง์ง๋ง์ ์์ ๋, ๋ฆฌ์คํธ์ ๊ธธ์ด๋งํผ ๋ฐ์ดํฐ๋ฅผ ๋น๊ตํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ์๊ฐ ๋ณต์ก๋๋ O(n)์ ๋๋ค. ๐ณ ์ด์ง ํ์ (Binary Search) ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ๋ฐ์ผ๋ก ๋๋์ด ํ์ชฝ์..

๐ฉ๐ป ํต ์ ๋ ฌ (Quick Sort) ์ ๋ฆฌ with Python ๐ฅ ํต ์ ๋ ฌ (Quick Sort)์ด๋? ๐ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ฝ, Quick Sort ๊ธฐ์ค์ (Pivot)์ ์ ํด์, ๊ธฐ์ค์ ๋ณด๋ค ์์ ๋ฐ์ดํฐ๋ ์ผ์ชฝ, ํฐ ๋ฐ์ดํฐ๋ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ชจ์ผ๋ ํจ์๋ฅผ ์์ฑํฉ๋๋ค. ๋๋์ด์ง ์ผ์ชฝ, ์ค๋ฅธ์ชฝ ๋ฐ์ดํฐ๋ฅผ ์ฌ๊ท ์ฉ๋ฒ์ ์ฌ์ฉํด์ ๋ค์ ๋์ผ ํจ์๋ฅผ ํธ์ถํ์ฌ ์ ์์ ์ ๋ฐ๋ณตํฉ๋๋ค. ํจ์๋ ์ผ์ชฝ, Pivot, ์ค๋ฅธ์ชฝ์ ๋ฆฌํดํ๊ฒ ๋ฉ๋๋ค. Divde And Conquer ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ ๋ํ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์ ๋๋ค. ๐ณ ํต ์ ๋ ฌ ๊ตฌํ with Python # QuickSort def quickSort(list): if len(list) = pivot] return quickSort(left) + [pivot] + quick..