Banner

My Tech Blog (Algorithm)

๐Ÿ“‘ 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(..
๐Ÿ“‘ 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;
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)
์ƒ๋‹จ์œผ๋กœ