๋ชฉ๋ก์ „์ฒด ๊ธ€ (129)

YS's develop story

MySQL ์‹œ๊ฐ„์ฐจ์ด ๊ณ„์‚ฐํ•˜๊ธฐ (TIMESTAMPDIFF ํ•จ์ˆ˜)

๐Ÿฅ 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 ์ด๋ฆ„; ์œ„์™€ ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด์„œ ..

Database/MySQL 2021. 8. 23. 08:47
๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ

๐Ÿ‘ฉ‍๐Ÿ’ป ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ with Python ๐Ÿฅ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Dijkstra Algorithm)์ด๋ž€? ๋‘ ๋…ธ๋“œ๋ฅผ ์ž‡๋Š” ๊ฐ€์žฅ ์งง์€ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ(๊ฐ€์ค‘์น˜ ํ•ฉ์ด ์ตœ์†Œ๊ฐ€ ๋˜๋„๋ก ํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ)์—์„œ ํ•˜๋‚˜์˜ ์ •์ ์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ์ •์  ๊ฐ„์˜ ๊ฐ๊ฐ ๊ฐ€์žฅ ์งง์€ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ฒซ ์ •์ ์„ ๊ธฐ์ค€์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ •์ ๋“ค์„ ์ถ”๊ฐ€ํ•ด ๊ฐ€๋ฉฐ, ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 1. ์ดˆ๊ธฐํ™” ์ฒซ ์ •์ ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜์—ฌ ์ฒซ ์ •์ ์—์„œ ๊ฐ ์ •์ ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ์—๋Š” ์ฒซ ์ •์ ์˜ ๊ฑฐ๋ฆฌ๋Š” 0, ๋‚˜๋จธ์ง€๋Š” ๋ฌดํ•œ๋Œ€๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. (inf๋ผ๊ณ  ํ‘œํ˜„ํ•จ) ์šฐ์„ ์ˆœ์œ„ ํ์— (์ฒซ ์ •์ , ๊ฑฐ๋ฆฌ 0)๋งŒ ๋จผ์ € ๋„ฃ์Šต๋‹ˆ๋‹ค. 2. ์šฐ์„ ์ˆœ์œ„ ํ์—..

Algorithm 2021. 8. 14. 09:40
๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ

๐Ÿ‘ฉ‍๐Ÿ’ป ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ (ํƒ์š•๋ฒ•) ์ •๋ฆฌ with Python ๐Ÿฅ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Greedy Algorithm)์ด๋ž€? 1. ๋งค ์ˆœ๊ฐ„ ์ตœ์ ์ด๋ผ๊ณ  ์ƒ๊ฐ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•ด์„œ ์ตœ์ข…์ ์ธ ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. 2. ๊ฐ๊ฐ์˜ ์„ ํƒ์€ ๊ทธ ์ˆœ๊ฐ„ ๋ณด์•˜์„ ๋•Œ๋Š” ๊ฐ€์žฅ ์ข‹์•„ ๋ณด์ด์ง€๋งŒ ๋‚˜์ค‘์—๋Š” ์ตœ์ ์˜ ํ•ด๊ฐ€ ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 3. ์ฆ‰ ๋งค ์ˆœ๊ฐ„์˜ ์„ ํƒ์€ locally optimal ํ•˜์ง€๋งŒ globally optimalํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ตœ์ ํ•ด๋ฅผ ์–ป์„ ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ‹ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์˜ˆ์‹œ 1 - ๋™์ „ ๋ฌธ์ œ ์ง€๋ถˆํ•ด์•ผ ํ•˜๋Š” ๊ฐ’์ด 7870์› ์ผ ๋•Œ ๊ฐ€์žฅ ์ ์€ ์ˆ˜์˜ ๋ˆ์œผ๋กœ ์ง€๋ถˆํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ๋ˆ๋ถ€ํ„ฐ ์ตœ๋Œ€ํ•œ ์ง€๋ถˆํ•ด์•ผ ํ•˜๋Š” ๊ฐ’์„ ์ฑ„์šฐ..

Algorithm 2021. 8. 13. 09:18
์•Œ๋ฆฌ๊ณ  ์นด์นด์˜ค ์•Œ๋ฆผํ†ก API ์—ฐ๋™ํ•˜๊ธฐ (with Node js)

๐Ÿ‘จ๐Ÿผ‍๐Ÿ’ป ์•Œ๋ฆฌ๊ณ  ์นด์นด์˜ค ์•Œ๋ฆผํ†ก API ์—ฐ๋™ํ•˜๊ธฐ (with Node js) โŒ› Problem ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ์ผ์–ด๋‚ฌ์„ ๋•Œ ํŠน์ • ์œ ์ €์—๊ฒŒ ์นด์นด์˜ค ์•Œ๋ฆผํ†ก์„ ์–ด๋–ป๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์„ ๊นŒ์š”? ๐Ÿ˜• ์•Œ๋ฆฌ๊ณ  ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉํ•ด์„œ Node js๋กœ ์ด๋ฅผ ๊ตฌํ˜„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ“œ Solution ์•Œ๋ฆฌ๊ณ  ์•Œ๋ฆฌ๊ณ  - ๊ตญ๋‚ด ์ตœ์ €๊ฐ€ ๋ฌธ์ž๋ฐœ์†ก ์•Œ๋ฆฌ๊ณ  ์Šค๋งˆํŠธ๋ฌธ์ž, ๋‹จ๋ฌธ8.4์› ์žฅ๋ฌธ25์› ๊ทธ๋ฆผ60์› ์•Œ๋ฆฌ๊ณ  ๋Œ€๋Ÿ‰๋ฌธ์ž/๋‹จ์ฒด๋ฌธ์ž/๋ฌธ์ž์‚ฌ์ดํŠธ/๋ฌธ์ž๋ฐœ์†ก smartsms.aligo.in:443 ์นด์นด์˜ค ์•Œ๋ฆผํ†ก์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์œ„์™€ ๊ฐ™์€ ์‚ฌ์ดํŠธ์— ๊ฐ€์ž…์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•Œ๋ฆผํ†ก์„ ๋ณด๋‚ด๋Š” ๊ธฐ๋Šฅ์€ ๊ฑด๋‹น 6์› ์ •๋„๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์œ ๋ฃŒ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์•Œ๋ฆผํ†ก์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์นด์นด์˜ค ์ฑ„๋„์ด ๋“ฑ๋ก๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์•Œ๋ฆผํ†ก์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ…œํ”Œ๋ฆฟ์„ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค..

๊ธฐํƒ€ 2021. 8. 4. 20:23
์ˆœ์ฐจ ํƒ์ƒ‰, ์ด์ง„ ํƒ์ƒ‰ ์ •๋ฆฌ

๐Ÿ‘ฉ‍๐Ÿ’ป ์ˆœ์ฐจ ํƒ์ƒ‰(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) ํƒ์ƒ‰ํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์ •ํ™•ํžˆ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„์–ด ํ•œ์ชฝ์—..

Algorithm 2021. 8. 1. 09:18