๐ 1. ๋ฌธ์ ์ค๋ช
โ 2. ์คํจํ ์๋SELECT CASE WHEN SUBSTRING(DIFFERENTIATION_DATE, 6,7) IN ('01', '02', '03') THEN '1Q' WHEN SUBSTRING(DIFFERENTIATION_DATE, 6,7) IN ('04', '05', '06') THEN '2Q' WHEN SUBSTRING(DIFFERENTIATION_DATE, 6,7) IN ('07', '08', '09') THEN '3Q' WHEN SUBSTRING(DIFFERENTIATION_DATE, 6,7) IN ('10', '11', '12') THEN '4Q' END AS QUARTER, COUNT(..
My Tech Blog (Algorithm)
๐ 1. ๋ฃจ์์ ์๋ผ ์ฐพ๊ธฐ โญ ์ ๋ต์ฝ๋SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKEFROM ANIMAL_INSWHERE NAME IN ('Lucy','Ella','Pickle','Rogan','Sabrina','Mitty')๐ 2. ํ ํด์ ์ก์ ๋ฌผ๊ณ ๊ธฐ์ ๊ตฌํ๊ธฐโญ ์ ๋ต์ฝ๋COUNT(ID)์ `FISH_COUNT` ๋ผ๋ ๋ณ์นญ์ ์ฃผ์ด์ผ ํจ๋ฌธ์ ์์์์ DATE ํ์์ด 'YYYY/MM/DD'๋ก ๋์ด ์๋ ๊ฑธ ๋ณด๊ณ ์ฝ๊ฐ ๋ณต์กํ๊ฒ ํ์๋ค.SELECT COUNT(ID) AS FISH_COUNTFROM FISH_INFOWHERE DATE_FORMAT(Time, '%Y/%m/%d') LIKE '2021%' ๋ค๋ฅธ ์ฌ๋๋ค์ด ํ์ดํ ๊ฒ์ ํ์ธํ๋๋ฐ ๋ ๊ฐ๋จํ๊ฒ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ์ ์๋ค. ์ด ๋ฌธ์ ๋..
๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์๋์ ๊ณํ๋ฒ(Dynamic Programming)์ด๋?๋์ ๊ณํ๋ฒ์ ์์ฃผ ์ฝ๊ฒ ์ค๋ช
ํ์๋ฉด, '์ด๋ฏธ ๊ณ์ฐํ ๊ฑด ๊ธฐ์ตํด ๋์๋ค๊ฐ, ๋ค์ ํ์ง ๋ง์'๋ ์ ๋ต์ด๋ค.๋์ ๊ณํ๋ฒ(Dynamic Programming, DP)์ ๋ณต์กํ ๋ฌธ์ ๋ฅผ ์์ ํ์ ๋ฌธ์ ๋ก ๋๋์ด ํด๊ฒฐํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ์ฌ ๋์ผํ ํ์ ๋ฌธ์ ๋ฅผ ๋ค์ ๊ณ์ฐํ์ง ์๋๋ก ํ๋ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ๊ธฐ๋ฒ์ด๋ค. ์ฃผ๋ก ์ต์ ํ ๋ฌธ์ ๋ ์กฐํฉ ๋ฌธ์ ๋ฅผ ํจ์จ์ ์ผ๋ก ํด๊ฒฐํ ๋ ์ฌ์ฉ๋๋ค. ๋์ ๊ณํ๋ฒ์๋ Top-Down ๋ฐฉ์์ธ ๋ฉ๋ชจ์ด์ ์ด์
๊ณผ Bottom-Up ๋ฐฉ์์ธ ํ
์ด๋ธ๋ง์ด ์๋ค. Top-Down (๋ฉ๋ชจ์ด์ ์ด์
)์ฌ๊ท๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ. ํ์ ๋ฌธ์ ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ์ฌ ์ค๋ณต ๊ณ์ฐ ๋ฐฉ์งBottom-Up (ํ
์ด๋ธ๋ง)์์ ๋ฌธ์ ๋ถํฐ ์ฐจ๋ก๋๋ก ํด๊ฒฐ..
๐ 1. ๋ฌธ์ ์ค๋ช
โ 2. ์คํจํ ์๋SELECT U.User_id, U.Nickname, CONCAT(U.City,' ', U.Street_address1, ' ', U.Street_address2) AS ์ ์ฒด์ฃผ์, CONCAT(SUBSTR(TLNO, 1, 3), '-', SUBSTR(TLNO, 4, 4), '-', SUBSTR(TLNO, 8)) AS ์ ํ๋ฒํธFROM Used_goods_board B JOIN Used_goods_user U ON B.Writer_id = U.User_idHAVING COUNT(BOARD_ID) >= 3ORDER BY U.User_id DESC; - CONCAT ํจ์๋ + ๊ฐ ์๋๋ผ , ๋ฅผ ์ฌ์ฉ..
๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์์ด ๋ฌธ์ ๋ ๋๋ฌด ์ด๋ ค์์ ์ค์ค๋ก ํ๊ธฐ ํ๋ค์ด์ ๊ฒ์์ ๋์์ ๋ฐ์.์ฃผ์ด์ง ๋ฌธ์ ๋ ๊ทธ๋ํ ์ด๋ก ์ ์ต์ ์ ์ฅ ํธ๋ฆฌ(MST, Minimum Spanning Tree) ๋ฌธ์ ์ด๋ค. ์ด ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ํ์ํ ์ ์ ์ง์- Union-Find(์ ๋์จ ํ์ธ๋) ์๋ฃ๊ตฌ์กฐ- Kruskal's Algorithm (ํฌ๋ฃจ์ค์นผ) ์๊ณ ๋ฆฌ์ฆ Kruskal's Algorithm (ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ)ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ์์ ๋งํ ์ต์์ ์ฅํธ๋ฆฌ(MST)๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ฌธ์ ์ ๋ถ๋ฅ ๋ต๊ฒ greedy์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ฒฐ์ ์ ์๊ฐ๋ง๋ค ์ต์ ์ ๊ฒฐ์ ์ ํจ์ผ๋ก์ ์ต์ข
์ ์ธ ๋ต์ ๊ตฌํ๋ ๋ฐฉ์์ผ๋ก ๋ชจ๋ ์ ์ ์ ์ต์ ๋น์ฉ์ผ๋ก ์ฐ๊ฒฐํ ์ ์๊ฒ ํด์ค๋ค.ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ํต์ฌ์ ๋ชจ๋ ๊ฐ์ ์ ๊ฐ์ค์น ๊ธฐ์ค(์ฌ๊ธฐ์๋ ๋ค๋ฆฌ ๊ฐ์ค..
๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์์
์ถ๋ ฅ ์๋ก ์ฃผ์ด์ง route ๋ฐฐ์ด์ ๋ง๋๊ทธ๋ํ๋ก ๊ทธ๋ ค ๋ดค๋ค. ์ต์ํ์ ์นด๋ฉ๋ผ๋ฅผ ๋ฐฐ์นํด์ผ ํ๋ฏ๋ก ๊ตฌ๊ฐ ์ข
๋ฃ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ์ฐจ๋์ด ๊ตฌ๊ฐ์์ ์นด๋ฉ๋ผ๋ฅผ ๋จ ํ ๋ฒ๋ง์ด๋ผ๋ ๋ง๋๋ฉด ๋จ์ข
๋ฃ ์ง์ ์์ ๋ค์ ๊ตฌ๊ฐ๊ณผ ๊ฒน์น๊ฒ ๋๋ฏ๋ก ์ต์ํ์ ์นด๋ฉ๋ผ๋ฅผ ๋ฐฐ์น๊ฐ๋ฅ์นด๋ฉ๋ผ ๋ฐฐ์น๋ ๋๋ก์ ๊ฐ์ฅ ์ผ์ชฝ ๋๋ถํฐ ํ์ํ๋ฉฐ ์์๋๋ค.์
์ถ๋ ฅ ์์์์ MIN_VALUE์ธ -20 ์ง์ ๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ๋ฉฐ ์ข
๋ฃ๊ตฌ๊ฐ๊ณผ ์์๊ตฌ๊ฐ์ด ๊ฒน์น๋ ๋ถ๋ถ์ ์นด๋ฉ๋ผ๊ฐ ๋ฐฐ์น๋๋ค.๊ตฌ๊ฐ ์ค ๊ฐ์ฅ ์ฒ์์ผ๋ก ๋ง๋๋ ์ข
๋ฃ ์์น๋ -15์ด๋ค.๋ฐ๋ผ์ ์ด ์์น์ ์ฒซ ๋ฒ์งธ ์นด๋ฉ๋ผ๋ฅผ ์ค์นํ๋ค. ๊ทธ๋ฆฌ๊ณ -13์ง์ ์์ ํ์ฌ ๊ตฌ๊ฐ๊ณผ ๋ค์ ๊ตฌ๊ฐ์ด ๋ง๋์ง๋ง ์ด๋ฏธ ํด๋น ๊ตฌ๊ฐ์๋ ์นด๋ฉ๋ผ๊ฐ ์ค์น ์๋ฃ ๋์์ผ๋ฏ๋ก ์คํตํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ๊ตฌ๊ฐ์ธ [-..
๐ 1. ๋ฌธ์ ์ค๋ช
โ 2. ์คํจํ ์๋์ฝ๋๋ ์๋ํ์ง๋ง ์ ๋ต ์ฒ๋ฆฌ X์ด์ : CAR_ID ์ค๋ณต๋จSELECT A.Car_idFROM Car_rental_company_car A JOIN Car_rental_company_rental_history B ON A.Car_id = B.Car_idWHERE A.Car_type = '์ธ๋จ' AND B.Start_date BETWEEN '2022-10-01' AND '2022-10-31'ORDER BY A.Car_id DESC;โญ 3. ์ ๋ต์ฝ๋CAR_ID ์ค๋ณต์ด ์์ด์ผ ํ๋ฉฐ -> DISTINCT๋์ฌ ๊ธฐ๋ก์ด ์๋ -> ON A.CAR_ID = B.CAR_IDSELECT DISTINCT(A.Car_id)FROM ..
๐ 1. ๋ฌธ์ ์ค๋ช
โญ 2. ์ ๋ต์ฝ๋์ถ๊ณ ์ผ์ด 2022-05-01 ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด '์ถ๊ณ ์๋ฃ'๋ฆ์ผ๋ฉด ์ถ๊ณ ๋๊ธฐ, ์์ผ๋ฉด ์ถ๊ณ ๋ฏธ์ ์ด๊ณ ํด๋น ์ปฌ๋ผ๋ช
์ ์ถ๊ณ ์ฌ๋ถ๋ผ๋ ์ด๋ฆ์ผ๋ก ์ค์ ์ด๋ ค์ด ๋ถ๋ถ์ ์๋ ์ฌ์ด ๋ฌธ์ ๐ฅณSELECT Order_id, Product_id, DATE_FORMAT(Out_date,'%Y-%m-%d') AS Out_date, CASE WHEN Out_date '2022-05-01' THEN '์ถ๊ณ ๋๊ธฐ' ELSE '์ถ๊ณ ๋ฏธ์ 'END AS ์ถ๊ณ ์ฌ๋ถFROM Food_orderORDER BY Order_id;