๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“šAlgorithm ------------

(18)
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - level3/์žˆ์—ˆ๋Š”๋ฐ์š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค/MySql ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ์‚ฌ์‹ค ์–ด๋ ต์ง€ ์•Š๊ฒŒ ํ’€์—ˆ๋Š”๋ฐ ์ œ๋ชฉ์ด ํฌ์ŠคํŒ… ์•ˆํ•  ์ˆ˜๊ฐ€ ์—†๋Š” ์ด๋ฆ„์ด๋ผ.. ์ž…์–‘์ผ๊ณผ ๋ณดํ˜ธ์ผ์„ JOIN์„ ์‚ฌ์šฉํ•ด์„œ ๊ฐ™์ด ๋น„๊ตํ•ด์ฃผ๋ฉด ๋— ์ฝ”๋“œ SELECT AI.animal_id, AI.name FROM ANIMAL_INS AI INNER JOIN ANIMAL_OUTS AO ON AI.animal_id = AO.animal_id WHERE AI.datetime > AO.datetime ORDER BY AI.datetime
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - level3/๋ฒ ์ŠคํŠธ ์•จ๋ฒ”/C++ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ์ด ๋‘ ๊ฐ€์ง€์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ–ˆ์Œ 1) ๋งŽ์ด ์žฌ์ƒ๋œ ์žฅ๋ฅด๊ฐ€ ๋ญ”์ง€ → key๋ฅผ ์žฅ๋ฅด๋กœ ํ•˜๊ณ  value์— ๊ฐ™์€ ์žฅ๋ฅด์˜ ์ „์ฒด ์žฌ์ƒ ํšŸ์ˆ˜๋ฅผ ๋’€์Œ 2) ๊ฐ™์€ ์žฅ๋ฅด ๋‚ด์—์„œ ๋งŽ์ด ์žฌ์ƒ๋œ ๋…ธ๋ž˜ ์ˆœ์„œ → ๊ณ ์œ  ๋ฒˆํ˜ธ, ์žฅ๋ฅด, ์žฌ์ƒํšŸ์ˆ˜๋ฅผ ๊ฐ€์ง€๋Š” struct๋ฅผ ๋งŒ๋“ค์–ด์„œ sort ํ•ด์คŒ ๋‘ ๊ฐœ๋ฅผ ์žฌ์ƒ ํšŸ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ, ๋‚ด๋ฆผ์ฐจ์ˆœ(DESC) ์ •๋ ฌํ•ด์คฌ์Œ ์ฝ”๋“œ #include #include #include #include #include using namespace std; struct Music { int idx=0; string genre; int play = 0; Music(int _idx, string _g, int _p):idx(_idx), genre(_g), play(_p){} }; map maxGenre; boo..
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - level2/๊ฐ€์žฅํฐ์ˆ˜/C++ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ์ด ๋ฌธ์ œ๋Š” ์ •๋ ฌ(sort)์„ ํ™œ์šฉํ•˜์—ฌ ํ’€ ์ˆ˜ ์žˆ์Œ ์ œํ•œ ์‚ฌํ•ญ์— "์ •๋‹ต์ด ๋„ˆ๋ฌด ํฌ๋‹ˆ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟ”๋ผ"๋ผ๊ณ  ์žˆ๋Š”๋ฐ, int ํ˜• ๋ฐฐ์—ด numbers๋ฅผ string ๋ฐฐ์—ด๋กœ ๋ฐ”๊พผ ํ›„, ์ •๋ ฌ์„ ํ•ด์ค„ ๋•Œ 3๋ฒˆ์งธ ์ธ์ž์˜ ํ•จ์ˆ˜์—์„œ ์ปค์Šคํ…€ ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋จ ์ฒ˜์Œ์—๋Š” sort ํ•จ์ˆ˜์—์„œ to_string์œผ๋กœ ๋ฐ”๊ฟ”์„œ numbers ๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟจ์—ˆ๋Š”๋ฐ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋˜์—ˆ์Œ ๐Ÿ™ ์ฐธ๊ณ ์‚ฌํ•ญ stl์—์„œ ์ œ๊ณตํ•˜๋Š” sort ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์œ„์™€ ๊ฐ™์Šต๋‹ˆ๋‹ท ์„ธ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋ฝ€์ธํŠธ์ธ๋ฐ, ๋น„๊ตํ•˜๊ณ  ์‹ถ์€ ๋‘ ๊ฐœ์˜ ์š”์†Œ(์ธ์ž)๋ž‘ return ๊ฐ’์„ ๋งž์ถฐ์„œ ์ž‘์„ฑํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ์—๋Š” ์กฐ๊ฑด์„ ์ˆซ์ž 1๊ณผ ์ˆซ์ž 2๋ฅผ ๋ถ™์—ฌ์„œ ๋น„๊ตํ–ˆ์„ ๋•Œ ๋” ํฐ ๊ฐ’๋งŒ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ, "6"๊ณผ "10"์„ ๋น„๊ต ์‹œ, 610 ๋˜๋Š” ..
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - level 3/์ตœ๊ณ ์˜ ์ง‘ํ•ฉ/C++ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ๋ฌธ์ œ ์„ค๋ช…์— ๋‘ ๊ฐ€์ง€ ์กฐ๊ฑด์ด ์žˆ๋Š”๋ฐ, ๊ทธ์ค‘ ๋‘ ๋ฒˆ์งธ ์กฐ๊ฑด์ธ "์œ„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด์„œ ๊ฐ ์›์†Œ์˜ ๊ณฑ์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋Š” ์ง‘ํ•ฉ"์ด๋ผ๋Š” ๊ฒƒ์— ํžŒํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ ์›์†Œ์˜ ๊ณฑ์ด ์ตœ๋Œ€ → ๋‚˜๋ˆ—์…ˆ์„ ํ™œ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ ์›์†Œ๋“ค์˜ ํ•ฉ(s)์„ ์›์†Œ์˜ ๊ฐœ์ˆ˜(n)์œผ๋กœ ๋‚˜๋ˆ  ๋ชซ์„ ๊ตฌํ•˜๋ฉด ์›์†Œ 1๊ฐœ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ ๊ทธ๋Ÿฌ๋ฉด s์—์„œ ์œ„์—์„œ ๊ตฌํ•œ ์›์†Œ 1๊ฐœ๋ฅผ ๋นผ์ฃผ๋ฉด (s -= div) ๋‚˜๋จธ์ง€ ์›์†Œ๋„ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ n > s์ธ ๊ฒฝ์šฐ(์˜ˆ์‹œ์˜ n=2, s=1)์— ๋Œ€ํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋„ ์ถ”๊ฐ€ํ•ด ์ฃผ๋ฉด ๋จ ์ฝ”๋“œ #include #include #include #include using namespace std; vector solution(int n, int s) { vector answer; if(n>s) { answer.push_back(-1); ..
Composite Pattern ์กฐ๊ธˆ ์˜ˆ์ „์— ๊ณต๋ถ€ํ–ˆ๋˜ ๋””์ž์ธ ํŒจํ„ด์ธ๋ฐ, ๋‹ค์‹œ ๋ณต์Šตํ•˜๋ฉด์„œ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค ๋””์ž์ธ ํŒจํ„ด๋„ ์ฐพ์•„๋ณด๋ฉฐ ๊ฐœ๋ฐœํ–ˆ๋˜ ์—ด์ • ์–ด๋””๊ฐ”๋‹ˆ ๐Ÿฅน Composite ๋œป OOP์—์„œ ์ปดํฌ์ง€ํŠธ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์œ ์‚ฌํ•œ ๊ฐ์ฒด๋ฅผ ๊ตฌ์„ฑ์œผ๋กœ ์„ค๊ณ„๋œ ๊ฐ์ฒด๋กœ ๋ชจ๋‘ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง ๊ฐ์ฒด ๊ทธ๋ฃน์„ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋‹จ์ผ ๊ฐ์ฒด๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ Composite Pattern ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณตํ•ฉ ๊ฐ์ฒด/๋‹จ์ผ ๊ฐ์ฒด๋ฅผ ๋™์ผํ•˜๊ฒŒ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ ํ•จ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ์ž‘์„ฑ, ์ „์ฒด-๋ถ€๋ถ„ ๊ด€๊ณ„ ํ‘œํ˜„ ํŠธ๋ฆฌ๊ตฌ์กฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ, ๊ฐœ๋ฐœ์ž๋Š” ๋ฆฌํ”„๋…ธ๋“œ์™€ ๋ธŒ๋žœ์น˜ ๊ตฌ๋ณ„ํ•ด์•ผํ•จ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค์ง€ ์•Š๊ธฐ → ์ธํ„ฐํŽ˜์ด์Šค ํ™œ์šฉํ•ด์„œ ์ž‘์„ฑํ•œ๋‹ค๋˜๊ฐ€ Client ํด๋ž˜์Šค๋Š” Leaf์™€ Composite ํด๋ž˜์Šค์— ์ง์ ‘ ์ฐธ์กฐ ํ•˜์ง€ ๋งˆ์„ธ์šฅ ๐Ÿ™…‍โ™€๏ธ๐Ÿ™…‍โ™€๏ธ ์ธํ„ฐํŽ˜์ด์Šค์ธ Component๋งŒ ์ฐธ์กฐํ•˜๊ธฐ Leaf๋Š” Com..
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํƒ์š•๋ฒ•(Greedy)/์ฒด์œก๋ณต/C++ ๋ฌธ์ œ ์„ค๋ช… ์ ์‹ฌ์‹œ๊ฐ„์— ๋„๋‘‘์ด ๋“ค์–ด, ์ผ๋ถ€ ํ•™์ƒ์ด ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ ์—ฌ๋ฒŒ ์ฒด์œก๋ณต์ด ์žˆ๋Š” ํ•™์ƒ์ด ์ด๋“ค์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๋Š” ์ฒด๊ฒฉ ์ˆœ์œผ๋กœ ๋งค๊ฒจ์ ธ ์žˆ์–ด, ๋ฐ”๋กœ ์•ž๋ฒˆํ˜ธ์˜ ํ•™์ƒ์ด๋‚˜ ๋ฐ”๋กœ ๋’ท๋ฒˆํ˜ธ์˜ ํ•™์ƒ์—๊ฒŒ๋งŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 4๋ฒˆ ํ•™์ƒ์€ 3๋ฒˆ ํ•™์ƒ์ด๋‚˜ 5๋ฒˆ ํ•™์ƒ์—๊ฒŒ๋งŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒด์œก๋ณต์ด ์—†์œผ๋ฉด ์ˆ˜์—…์„ ๋“ค์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ฒด์œก๋ณต์„ ์ ์ ˆํžˆ ๋นŒ๋ ค ์ตœ๋Œ€ํ•œ ๋งŽ์€ ํ•™์ƒ์ด ์ฒด์œก์ˆ˜์—…์„ ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ํ•™์ƒ์˜ ์ˆ˜ n, ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ•œ ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด lost, ์—ฌ๋ฒŒ์˜ ์ฒด์œก๋ณต์„ ๊ฐ€์ ธ์˜จ ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด reserve๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ฒด์œก์ˆ˜์—…์„ ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ํ•™์ƒ์˜ ์ตœ๋Œ“๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ..
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์™„์ „ํƒ์ƒ‰/๋ชจ์˜๊ณ ์‚ฌ/C++ ๋ฌธ์ œ ์„ค๋ช… ์ˆ˜ํฌ์ž๋Š” ์ˆ˜ํ•™์„ ํฌ๊ธฐํ•œ ์‚ฌ๋žŒ์˜ ์ค€๋ง์ž…๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž ์‚ผ์ธ๋ฐฉ์€ ๋ชจ์˜๊ณ ์‚ฌ์— ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ์ „๋ถ€ ์ฐ์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž๋Š” 1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฐ์Šต๋‹ˆ๋‹ค. 1๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€์˜ ์ •๋‹ต์ด ์ˆœ์„œ๋Œ€๋กœ ๋“ค์€ ๋ฐฐ์—ด answers๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€์žฅ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ๋งžํžŒ ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฌ์ธ์ง€ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘..
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ •๋ ฌ/k๋ฒˆ์งธ์ˆ˜/C++ ๋ฌธ์ œ ์„ค๋ช…๋ฐฐ์—ด array์˜ i๋ฒˆ์งธ ์ˆซ์ž๋ถ€ํ„ฐ j๋ฒˆ์งธ ์ˆซ์ž๊นŒ์ง€ ์ž๋ฅด๊ณ  ์ •๋ ฌํ–ˆ์„ ๋•Œ, k๋ฒˆ์งธ์— ์žˆ๋Š” ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด array๊ฐ€ [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3์ด๋ผ๋ฉดarray์˜ 2๋ฒˆ์งธ๋ถ€ํ„ฐ 5๋ฒˆ์งธ๊นŒ์ง€ ์ž๋ฅด๋ฉด [5, 2, 6, 3]์ž…๋‹ˆ๋‹ค.1์—์„œ ๋‚˜์˜จ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋ฉด [2, 3, 5, 6]์ž…๋‹ˆ๋‹ค.2์—์„œ ๋‚˜์˜จ ๋ฐฐ์—ด์˜ 3๋ฒˆ์งธ ์ˆซ์ž๋Š” 5์ž…๋‹ˆ๋‹ค.๋ฐฐ์—ด array, [i, j, k]๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง„ 2์ฐจ์› ๋ฐฐ์—ด commands๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, commands์˜ ๋ชจ๋“  ์›์†Œ์— ๋Œ€ํ•ด ์•ž์„œ ์„ค๋ช…ํ•œ ์—ฐ์‚ฐ์„ ์ ์šฉํ–ˆ์„ ๋•Œ ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญarray์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 100 ์ดํ•˜์ž…๋‹ˆ๋‹ค.array์˜ ๊ฐ ..