๐ก ๋ฐฐ์ด๊ณผ ์คํ์ ๋ํ ์ดํด ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ณต๋ฌธ์ ํ์ฉํ ์ค ์๋ค๋ฉด ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ ๊ฒ์ ๋๋ค.
๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ฐ๋ค์ ๋์ ๋ณด์ด์ง ์๊ธฐ ๋๋ฌธ์ ์ด๋ ์์ญ์ ์ด๋ค ํํ๋ก ์ ์ฅ๋๋์ง ํ์คํ ์ดํดํ๋ ๊ฒ์ด ์๋ํฅ์์ ๋์์ด ๋ ๊ฒ ์ ๋๋ค.
๋ฐฐ์ด์๋ 1~n๊น์ง์ ๋ฌด์์ ์์ด์ด ๋ค์ด๊ฐ๋๋ค.
์คํ์๋ 1~n๊น์ง์ ์ซ์๊ฐ ๋ค์ด๊ฐ๋๋ค.
- ๋ฐฐ์ด์ ์ฒซ ์ธ๋ฑ์ค๊ฐ์ด ๋์ฌ๋๊น์ง ์คํ์ 1๋ถํฐ ๋ฃ์ด์ค๋๋ค.
- ๋ฐฐ์ด์ ์ฒซ์ธ๋ฑ์ค ๊ฐ์ด ์คํ์์ ๋ฐ๊ฒฌ ๋์ต๋๋ค. โก๏ธ ๊ฒฐ๊ณผ์ '+' ๋ฌธ์๋ฅผ ๋ฃ์ด์ค๋๋ค.
- ์คํ์์ ํ์ ํด์ค๋๋ค. โก๏ธ ๊ฒฐ๊ณผ์ '-' ๋ฌธ์๋ฅผ ๋ฃ์ด์ค๋๋ค.
- ์คํ์ด ๋น์๋ค๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํด์ฃผ๊ณ , ์คํ์ด ๋น์ง ์์๋ค๋ฉด NO๋ฅผ ์ถ๋ ฅํด์ค๋๋ค.
int j = 1; //์คํ์ ๋ค์ด๊ฐ ๊ฐ 1~5 for (int i = 0; i < n; i++) { if(stack.isEmpty()) {//์คํ์ด ๋น์ด์์ผ๋ฉด ์ถ๊ฐํด์ค๋๋ค. stack.push(j++);//1๋ค์ด๊ฐ๊ณ ํ์์ฐ์ฐ list.add('+'); } //์ธ๋ฑ์ค์ ๊ฐ์ด ์คํ์ ์์ ๊ฐ์ง ์์ผ๋ฉด ๊ณ์ ํ์์ฐ์ฐํ๋ฉด์ ๋ฃ์ด์ค๋๋ค. while(stack.size() < n && stack.peek()!=origin[i]) { stack.push(j++);//2๋ค์ด๊ฐ๊ณ ํ์์ฐ์ฐ list.add('+'); } //์ธ๋ฑ์ค์ ๊ฐ์ด ์คํ์ ์์ ๊ฐ๊ฒ ๋๋ฉด ์คํ์์ ๊บผ๋ด ์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ณต if(!stack.isEmpty()&&stack.peek()==origin[i]) { stack.pop(); list.add('-'); } }