๊ณจ๋4 : stack ๋ฌธ์ ์ด๋ค.
ํ์ด
์, ์ ๋ง ์์ฌ์ด ๋ฌธ์ ์๋ค. ํ์ง๋ง ๋ฐฐ์ด ๊ฒ์ด ์์๋ค. Stack์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ๋ ์ด์ ์ ์ด๋ค ๋ณต์ก๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํจ์ด๋ค. ์ด ๋ถ๋ถ์ ๋ค์ ๋ค์ ์ดํด๋ณด๋๋ก ํ์. ์ผ๋จ ์ด ๋ฌธ์ ๋ฅผ ๋จ์ํ๊ฒ ์ํํด์ ํผ๋ค๋ฉด ์ต์ ์ ๊ฒฝ์ฐ ๊ฐ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ n=1,000,000์ธ ์ํฉ์์ ๋ฐ๋ก ์๊ฐ์ด๊ณผ๊ฐ ๋๋ค. ๊ทธ๋์ ์ด๋ฅผ n์ ๊ฐ๊น์ด ์๋๋ก ํ์ด์ผ ํ๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ฌธ์ ๋ฅผ ๋ถ์ํด๋ณด์. ์คํฐ์๋ ํ์ฌ ๊ฐ์์ ์ค๋ฅธ์ชฝ์ ์๋ ํฐ๊ฐ๋ค ์ค ๊ฐ์ฅ ์ฒซ๋ฒ์งธ๋ก ๋์ค๋ ๋ ์์ด๋ผ๊ณ ์ j์ํ ์ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์, ๋ง์ฝ ํ์ฌ๊ฐ์ด 4์ธ๋ฐ, ๋ค์ ๊ฐ์ด 10์ด๋ฉด ๊ทธ 10์ด ์คํฐ์๊ฐ ๋ ์ ์๊ฒ ๋ค. ์ฌ๊ธฐ์ ์ ์ ์๋ ์ ์ ์, ํฐ๋์ด ๋์ค๋ฉด ๊ทธ ์ ๊ฐ์ ์ด ํฐ๋์ด ์คํฐ์๊ฐ ๋ ๊ฐ๋ฅ์ฑ์ด ์๊ตฌ๋. ์ ๋์ด๋ค. ๊ทธ๋ผ ์ด๋ฐ ์ํฉ์ ์ด๋จ๋ผ?
4 3 9
์ด๋ฐ ์ํฉ์์ 4์ ์ ์ฅ์์ 3์ ์คํฐ์๊ฐ ์๋๋ค. ํ์ง๋ง 3์ ์ ์ฅ์์ 9๋ ์คํฐ์์ด๋ค. ๊ทธ๋ ๋ค๋ฉด 4์ ์คํฐ์๋? 9์ด๋ค. ์ฌ๊ธฐ์, ํ์ฌ ๊ฐ๋ณด๋ค ๋ฏธ๋ ๊ฐ์ด ํฐ ๊ฒฝ์ฐ ๊ณผ๊ฑฐ๊ฐ๋ค ์ค์ ๋ฏธ๋ ๊ฐ์ ์คํฐ์๋ก ๊ฐ์ง๋ ๋ ์์ด ์์ ์ ์๋ค๋ ๊ฒฐ๋ก ์ ๋ด๋ฆด ์ ์๋ค.
1 7 9 7 8 3 1 4 10 3 10
7 9 10 8 10 4 4 10 -1 10 -1
์ ๊ทธ๋ผ, ์ด๋ค ๋ถ๊ธฐ์์ ์ด ๊ฐ์ ์ด ํ๋ฆด ์ ์์๊น? ์ผ๋จ ๋ฏธ๋ ๊ฐ์ด ํ์ฌ๊ฐ๊ณผ ๊ฐ๋ค๋ฉด, ํ์ฌ ๊ฐ์ ์คํฐ์๋ ๊ทธ ๋ฏธ๋๊ฐ์ด ์๋๋ค. ์ฌ๊ธฐ์ stack์ ์ฌ์ฉํด๋ณด์. stack์๋ ๋ค์์ ๋์ฌ ๋ฏธ๋๊ฐ์ ์ํด ์คํฐ์๊ฐ ๊ฒฐ์ ๋ ํ๋ณด ์์น๋ฅผ ๋งํ๋ค. ์ข ์ด๋ ค์ฐ๋ ์ ์ด๋ณด์.
11
1 7 9 7 8 3 1 4 10 3 10
index : 0
value : 1
stack ํ์ฌ ์ํ
0
index : 1
value : 7
stack top (position): 0
value : 1
์คํฐ์ ํ๋ณด ๋ฐ๊ฒฌ, ๋ต์ ์
๋ฐ์ดํธ
stack before
0
answer before
0 0 0 0 0 0 0 0 0 0 0
stack after
answer after
7 0 0 0 0 0 0 0 0 0 0
stack ํ์ฌ ์ํ
1
index : 2
value : 9
stack top (position): 1
value : 7
์คํฐ์ ํ๋ณด ๋ฐ๊ฒฌ, ๋ต์ ์
๋ฐ์ดํธ
stack before
1
answer before
7 0 0 0 0 0 0 0 0 0 0
stack after
answer after
7 9 0 0 0 0 0 0 0 0 0
stack ํ์ฌ ์ํ
2
index : 3
value : 7
stack top (position): 2
value : 9
stack ํ์ฌ ์ํ
2 3
index : 4
value : 8
stack top (position): 3
value : 7
์คํฐ์ ํ๋ณด ๋ฐ๊ฒฌ, ๋ต์ ์
๋ฐ์ดํธ
stack before
2 3
answer before
7 9 0 0 0 0 0 0 0 0 0
stack after
2
answer after
7 9 0 8 0 0 0 0 0 0 0
stack ํ์ฌ ์ํ
2 4
index : 5
value : 3
stack top (position): 4
value : 8
stack ํ์ฌ ์ํ
2 4 5
index : 6
value : 1
stack top (position): 5
value : 3
stack ํ์ฌ ์ํ
2 4 5 6
index : 7
value : 4
stack top (position): 6
value : 1
์คํฐ์ ํ๋ณด ๋ฐ๊ฒฌ, ๋ต์ ์
๋ฐ์ดํธ
stack before
2 4 5 6
answer before
7 9 0 8 0 0 0 0 0 0 0
stack after
2 4 5
answer after
7 9 0 8 0 0 4 0 0 0 0
์คํฐ์ ํ๋ณด ๋ฐ๊ฒฌ, ๋ต์ ์
๋ฐ์ดํธ
stack before
2 4 5
answer before
7 9 0 8 0 0 4 0 0 0 0
stack after
2 4
answer after
7 9 0 8 0 4 4 0 0 0 0
stack ํ์ฌ ์ํ
2 4 7
index : 8
value : 10
stack top (position): 7
value : 4
์คํฐ์ ํ๋ณด ๋ฐ๊ฒฌ, ๋ต์ ์
๋ฐ์ดํธ
stack before
2 4 7
answer before
7 9 0 8 0 4 4 0 0 0 0
stack after
2 4
answer after
7 9 0 8 0 4 4 10 0 0 0
์คํฐ์ ํ๋ณด ๋ฐ๊ฒฌ, ๋ต์ ์
๋ฐ์ดํธ
stack before
2 4
answer before
7 9 0 8 0 4 4 10 0 0 0
stack after
2
answer after
7 9 0 8 10 4 4 10 0 0 0
์คํฐ์ ํ๋ณด ๋ฐ๊ฒฌ, ๋ต์ ์
๋ฐ์ดํธ
stack before
2
answer before
7 9 0 8 10 4 4 10 0 0 0
stack after
answer after
7 9 10 8 10 4 4 10 0 0 0
stack ํ์ฌ ์ํ
8
index : 9
value : 3
stack top (position): 8
value : 10
stack ํ์ฌ ์ํ
8 9
index : 10
value : 10
stack top (position): 9
value : 3
์คํฐ์ ํ๋ณด ๋ฐ๊ฒฌ, ๋ต์ ์
๋ฐ์ดํธ
stack before
8 9
answer before
7 9 10 8 10 4 4 10 0 0 0
stack after
8
answer after
7 9 10 8 10 4 4 10 0 10 0
stack ํ์ฌ ์ํ
8 10
7 9 10 8 10 4 4 10 -1 10 -1
์์๋๋ก ๋ฐ๋ผ๊ฐ๋ค ๋ณด๋ฉด ์ดํด๊ฐ ๋ ๊ฒ์ด๋ค. ์ต์ข ์ ์ผ๋ก stack์ ๋จ๋ ๊ฐ์, ๋งจ ๋ง์ง๋ง ๊ฐ๊น์ง ๋ณด์๋๋๋ ์คํฐ์๋ฅผ ์ฐพ์ ์ ์์๋, ์ธ๋ฑ์ค ๋ค์ด๋ค. ์คํฐ์๋ฅผ ์ฐพ์ง ๋ชปํ ๋ ์๋ค์ ๋ง์ง๋ง์ผ๋ก -1๋ก ์ ๋ฐ์ดํธํ๋ฉด ๋๋๋ค.