์๋ก ์๋ฃ๊ตฌ์กฐ ์๋ฃ๊ตฌ์กฐ๋ ์ปดํจํฐ์์ ์๋ฃ๋ฅผ ์ ๋ฆฌํ๊ณ ์กฐ์งํํ๋ ๋ค์ํ ๊ตฌ์กฐ๋ฅผ ๋งํ๋ค. ํ๋ก๊ทธ๋จ์ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ด๋ฃจ์ด์ ธ์๊ธฐ ๋๋ฌธ์, ์๋ฃ๊ตฌ์กฐ๋ ๋ฐ๋์ ๊ณต๋ถํด์ผํ๋ ๋ถ์ผ์ด๋ค. ์๋ฃ๊ตฌ์กฐ๋ ๋จผ์ ๋จ์ ์๋ฃ๊ตฌ์กฐ์ ๋ณตํฉ ์๋ฃ๊ตฌ์กฐ๋ก ๊ตฌ๋ถ๋๊ณ , ๋ณตํฉ ์๋ฃ๊ตฌ์กฐ์๋ ์ ํ ๊ตฌ์กฐ์ ๋น์ ํ ๊ตฌ์กฐ๊ฐ ์๋ค. ์์ฐจ์ ์ผ๋ก ์ดํด๋ณด์. ๋ฐฐ์ด, ๋ฌธ์์ด ์ฐ๊ฒฐ ๋ฆฌ์คํธ ์คํ, ํ, ๋ฑ ๊ทธ๋ํ ํธ๋ฆฌ ํ ๊ตฌ์กฐ์ฒด
ํ 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..
์คํ ํน์ง ์ฉ๋ ์ฐ์ฐ ์ฝ์ ์ญ์ ์ ๊ทผ ๊ตฌํ ํ ์ฉ๋ ์ข ๋ฅ ์ฐ์ฐ ์ฝ์ ์ญ์ ์ ๊ทผ ๊ตฌํ ์ฐ์ ์์ ํ ๋ฑ ์ฉ๋ ๊ตฌํ ์คํ ์คํ์ LIFO(Last-In First-Out), ์ฆ ํ์ ์ ์ถ์ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ ํํ์ด๋ฉฐ, ์ ์์ฒ๋ผ ์์ฌ์ ์ดํ์ ์ฝ์ ๋ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋น ์ ธ๋๊ฐ๋๋ก ๋์ด์๋ค. top ๋ณ์๋ ๊ฐ์ฅ ์ต๊ทผ์ ๋ค์ด์จ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ฉฐ ์คํ์ด ๋น์ด์์ผ๋ฉด -1์ด๋ค. ํน์ง LIFO ๋ด๋ถ ์์๋ฅผ ํ์ธํ ๋ฐฉ๋ฒ์ด pop ๋ง๊ณ ๋ ์๋ค. ์ฉ๋ ์ ๋ ฅ์ ์ญ์์ด ํ์ํ ๋ ์คํ์ ์ฃผ๋ก ์ฌ์ฉํ๋ฉฐ, ํจ์์ ํธ์ถ์์ ๋ณต๊ท ์ฃผ์๋ฅผ ๊ธฐ์ตํ๊ธฐ ์ํด์ ์์คํ ์คํ์ด ์ฌ์ฉ๋๊ธฐ๋ ํ๋ค. ๋ํ ๊ดํธ ๊ฒ์ฌ, ๊ณ์ฐ๊ธฐ, ๋ฏธ๋ก ํ์ ๋ฑ์ ๊ฒฝ์ฐ์ ์คํ์ด ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค. ๊ณ์ฐ๊ธฐ์์ ์ค์ ํ๊ธฐ์(infix)์ ํ์ ํ๊ธฐ์(postfix)์ผ๋ก..
์ฐ๊ฒฐ ๋ฆฌ์คํธ ๋ฆฌ์คํธ๋? ์ ์ ๋ฐฐ์ด๊ณผ์ ๋น๊ต ์ฐ์ฐ ์ฝ์ ์ญ์ ์ ๊ทผ ์ข ๋ฅ / ๊ตฌํ ๋ฆฌ์คํธ๋? ๋ฆฌ์คํธ๋ ์์๋ฅผ ๊ฐ์ง ํญ๋ชฉ๋ค์ ๋ชจ์์ด๋ค. ์ด๋ฅผ ๋ํ๋ด๋ ๋ํ์ ์ธ ๋ฐฉ๋ฒ์ 2๊ฐ์ง๊ฐ ์๋๋ฐ, ํ๋๋ ๋ฐฐ์ด์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด๊ณ ๋๋จธ์ง ํ๋๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ฐฐ์ด์ ์ด์ฉํ ๋ฆฌ์คํธ๋ฅผ ์ ํ๋ฆฌ์คํธ๋ผ๊ณ ํ๋๋ฐ ๊ตฌํ ์์ฒด๋ ๊ฐ๋จํ๊ณ ์์์ ๊ทผ์ด ๊ฐ๋ฅํ์ง๋ง, ์ฝ์ / ์ญ์ ์ฐ์ฐ ์ ๋ค๋ฅธ ์์๋ค์ ์ด๋์ด ๋ถ๊ฐํผํ๋ฏ๋ก ์ค๋ฒํค๋๊ฐ ํฌ๋ค. ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ ๊ตฌํ์ด ๋ณต์กํ๊ณ ์์ฐจ์ ๊ทผ์ด ํ์ํ์ง๋ง ์ฝ์ , ์ญ์ ๊ฐ ํจ์จ์ ์ด๋ค. ์ ์ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ ์๋์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ฐ์ดํฐ์ ๋งํฌ๋ก ์ด๋ฃจ์ด์ง ๋ ธ๋๋ก ๊ตฌ์ฑ๋์ด์๋ค. ๋งํฌ๋ ๋ค์ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ์ด๋ค. ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ์ฒ์์๋ ํค๋ ํฌ์ธํฐ๊ฐ ํค๋ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์์ผ๋ฉฐ, ๋ง์ง๋ง ๋ ธ๋์ ๋งํฌ๋ ..
๋ชฉ์ฐจ ๋ฐฐ์ด ์ ์ธ ์ด๊ธฐํ ์ ๊ทผ ๋ค์ฐจ์ ๋ฐฐ์ด ํฌ์ ํ๋ ฌ ํํ ์ฃผ์์ ํฌ์ธํฐ ํฌ์ธํฐ ํน์ง ์ ์ฝ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋์ ๋ฐฐ์ด(vector) ๋ฌธ์์ด ์ ์ธ ์ด๊ธฐํ ํจ์ ๋ฐฐ์ด / ๋ฌธ์์ด ๋ฐฐ์ด ๋ฐฐ์ด์ด๋ ๋จ์ผ ์๋ณ์๋ก _๊ฐ์ ์๋ฃํ_์ ์ฌ๋ฌ ๋ณ์๋ฅผ ์ ๊ทผํ ์ ์๊ฒ ํด์ฃผ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ ์ธ c++์์๋ int arr[3];์ ๊ฐ์ด ์๋ฃํ ๋ฐฐ์ด์ด๋ฆ[๋ฐฐ์ด ๊ธธ์ด];๋ก ๋ณ์๋ฅผ ์ ์ธํ๋ค. ์ด ๋, ๋๊ดํธ ๋ด์ ์์์ ๊ฐฏ์๋ '์ปดํ์ผ ํ์ ์์'์ฌ์ผํ๋ค. ์์ค์ฝ๋๋ฅผ ์ปดํ์ผํ ๋, ๊ณ ์ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ์์์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ๋งคํฌ๋ก ๊ธฐํธ ์์ (ex_ #define ARRAY_LEN 5)๋ ์ด๊ฑฐ์(ex_enum A{ARRAY_LEN = 5})๋ ๋ฐฐ์ด์ ๊ธธ์ด๋ก ์ฌ์ฉํ ์ ์๋ค. const ๋ํ ์ปดํ์ผ ์ ๊ณ ์ ๋๋ ์์์ด๋ฏ๋ก ์ฌ์ฉ๊ฐ..
Comment