[ํ›„์œ„ํ‘œ๊ธฐ๋ฒ•] ํ›„์œ„ํ‘œ๊ธฐ์‹์œผ๋กœ ๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ (html, js ์ด์šฉ) :: ๊ฐœ๋…์—์„œ ๊ตฌํ˜„๊นŒ์ง€
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/๊ธฐ์ดˆ 2020. 12. 21. 00:00

ํ›„์œ„ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ ๊ณ„์‚ฐ๊ธฐ ๊ด€๋ จ ์™ธ์ฃผ๊ฐ€ ๋“ค์–ด์™€์„œ ํ•ด๋ณด๋˜ ์ค‘, ์˜ˆ์ „์— ๋ฐฐ์› ๋˜ ํ›„์œ„ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ธฐ์–ต์ด ์•ˆ๋‚˜์„œ ๊ฒ€์ƒ‰ ์—†์ด ํ˜ผ์ž ๊ตฌํ˜„ํ•˜๋ ค๋‹ค ๋ณด๋‹ˆ ๋„ˆ๋ฌด ์–ด๋ ค์› ๋‹ค... ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ๊นŒ stack์„ ์ด์šฉํ•ด์„œ ํ›„์œ„ํ‘œ๊ธฐ๋ฒ•์„ ๋งŒ๋“œ๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด ๋‚˜์™€์žˆ์–ด์„œ ๊นŒ๋จน์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•œ๋‹ค. ํ›„์œ„ ํ‘œ๊ธฐ๋ฒ• ์ˆ˜์‹ ํŠธ๋ฆฌ ํ›„์œ„ ํ‘œ๊ธฐ๋ฒ•์ด๋ž€ ๊ณ„์‚ฐ์‹์—์„œ ๊ณ„์‚ฐ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ‘œ๊ธฐ๋ฒ•์ด๋‹ค. ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์‚ดํŽด๋ณด์ž. ์ˆ˜์‹ : 9x3+1-3%3 ์ˆ˜์‹์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๋น„์—ฐ์‚ฐ์ž์™€ ์—ฐ์‚ฐ์ž๋กœ ๋‚˜๋ˆˆ ํ›„, ๊ฐ ํ•ญ๋ชฉ์„ ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠธ๋ฆฌ๋Š” ์ˆ˜์‹์„ ํŠธ๋ฆฌ๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋งŒ๋“  ๊ฒƒ์ด๋‹ˆ ์ˆ˜์‹ํŠธ๋ฆฌ, ์ฆ‰ Expression Tree๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค. ํŠธ๋ฆฌ ์ˆœํšŒ์™€ ํ‘œ๊ธฐ๋ฒ• ํŠธ๋ฆฌ๋ฅผ ์ˆœํšŒํ•˜๋Š” ๋ฐฉ์‹์—๋Š” prefix(์ „์œ„)..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ž๋ฃŒ๊ตฌ์กฐ - ์„œ๋ก 
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 7. 28. 14:14

์„œ๋ก  ์ž๋ฃŒ๊ตฌ์กฐ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์ปดํ“จํ„ฐ์—์„œ ์ž๋ฃŒ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์กฐ์งํ™”ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ตฌ์กฐ๋ฅผ ๋งํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์€ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋ฐ˜๋“œ์‹œ ๊ณต๋ถ€ํ•ด์•ผํ•˜๋Š” ๋ถ„์•ผ์ด๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋จผ์ € ๋‹จ์ˆœ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ๋ณตํ•ฉ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๊ตฌ๋ถ„๋˜๊ณ , ๋ณตํ•ฉ ์ž๋ฃŒ๊ตฌ์กฐ์—๋Š” ์„ ํ˜• ๊ตฌ์กฐ์™€ ๋น„์„ ํ˜• ๊ตฌ์กฐ๊ฐ€ ์žˆ๋‹ค. ์ˆœ์ฐจ์ ์œผ๋กœ ์‚ดํŽด๋ณด์ž. ๋ฐฐ์—ด, ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ์Šคํƒ, ํ, ๋ฑ ๊ทธ๋ž˜ํ”„ ํŠธ๋ฆฌ ํž™ ๊ตฌ์กฐ์ฒด

[c++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค :: ํƒ‘ (๋ฌธ์ œ ํ’€์ด, ์ฝ”๋“œ)
Algorithm ๋ฌธ์ œ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2020. 7. 26. 11:16

ํƒ‘ https://programmers.co.kr/learn/courses/30/lessons/42588?language=cpp ์ฝ”๋“œ #include #include #include using namespace std; vector solution(vector heights) { int heights_len = heights.size(); vector answer(heights_len); stack stk; // index, key for (int i = heights_len - 1; i>0; i--) { if (heights[i - 1] > heights[i]) { answer[i] = i; // stack while (stk.size() != 0) { auto tmp = stk.top(); if (h..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ž๋ฃŒ๊ตฌ์กฐ - ์Šคํƒ, ํ, ๋ฑ
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 7. 19. 11:39

์Šคํƒ ํŠน์ง• ์šฉ๋„ ์—ฐ์‚ฐ ์‚ฝ์ž… ์‚ญ์ œ ์ ‘๊ทผ ๊ตฌํ˜„ ํ ์šฉ๋„ ์ข…๋ฅ˜ ์—ฐ์‚ฐ ์‚ฝ์ž… ์‚ญ์ œ ์ ‘๊ทผ ๊ตฌํ˜„ ์šฐ์„ ์ˆœ์œ„ ํ ๋ฑ ์šฉ๋„ ๊ตฌํ˜„ ์Šคํƒ ์Šคํƒ์€ LIFO(Last-In First-Out), ์ฆ‰ ํ›„์ž…์„ ์ถœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์ด๋ฉฐ, ์ ‘์‹œ์ฒ˜๋Ÿผ ์Œ“์—ฌ์„œ ์ดํ›„์— ์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋น ์ ธ๋‚˜๊ฐ€๋„๋ก ๋˜์–ด์žˆ๋‹ค. top ๋ณ€์ˆ˜๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋“ค์–ด์˜จ ์š”์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด -1์ด๋‹ค. ํŠน์ง• LIFO ๋‚ด๋ถ€ ์š”์†Œ๋ฅผ ํ™•์ธํ•  ๋ฐฉ๋ฒ•์ด pop ๋ง๊ณ ๋Š” ์—†๋‹ค. ์šฉ๋„ ์ž…๋ ฅ์˜ ์—ญ์ˆœ์ด ํ•„์š”ํ•  ๋•Œ ์Šคํƒ์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์—์„œ ๋ณต๊ท€ ์ฃผ์†Œ๋ฅผ ๊ธฐ์–ตํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‹œ์Šคํ…œ ์Šคํƒ์ด ์‚ฌ์šฉ๋˜๊ธฐ๋„ ํ•œ๋‹ค. ๋˜ํ•œ ๊ด„ํ˜ธ ๊ฒ€์‚ฌ, ๊ณ„์‚ฐ๊ธฐ, ๋ฏธ๋กœ ํƒ์ƒ‰ ๋“ฑ์˜ ๊ฒฝ์šฐ์— ์Šคํƒ์ด ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค. ๊ณ„์‚ฐ๊ธฐ์—์„œ ์ค‘์œ„ ํ‘œ๊ธฐ์‹(infix)์„ ํ›„์œ„ ํ‘œ๊ธฐ์‹(postfix)์œผ๋กœ..