์ค๋์ ์ด๋ฆฐ์ด๋ ! ์ ๋ฌผ ์ฃผ์ธ์~
์ด๋ฒ์ฃผ๋ ์ด์ฉ๋ค๋ณด๋ ๊ณ์ ์ฌ๊ฒ ๋๋ค. ๊ฐ์กฑ๊ณผ ์ฌํด ์ฒ์์ผ๋ก ์ฌํ์ ๊ฐ๊ฒ ๋ ๊ฒ๊ฐ์๋ฐ ์์ฃผ ๊ฐ๋ ๊ฐํ๋์ ๊ฐ๊ฒ ๋์๋ค. ๋ณดํต ๊ฐ์ ์ฅ์ด๋ฅผ ๋จน๋๋ฐ ์ค๋ซ๋ง์ ๋ชธ๋ณด์ ํด์ ๊ธฐ๋ถ์ด ์ข์๋ค. ์์ผ๋ก๋ ์์ฃผ ์ด๋ ๊ฒ ์ฌํ๊ฐ๋ ์ผ์ด ์๊ฒผ์ผ๋ฉด ์ข๊ฒ ๋ค.
๋๋ฌด ์๋ฌด๊ฒ๋ ์ํ ๊ฒ ๊ฐ์์ ๋ฌธ์ ํ๋๋ง ํ์ด๋ณด์๋ค. ์๋ฃ๊ตฌ์กฐ๋ ์ค์ํ๊ธฐ ๋๋ฌธ์ ๋ณด๋ค๋ณด๋ ํ ๋ฌธ์ ๊ฐ ์์๋ค. ๋ด ๋๋ฆ๋๋ก ํ์ด๋ณด์๊ณ ๋น์ฐํ? ํ๋ ธ๋ค.
์ด์ ๋ฅผ ์ฐพ๋ค๋ณด๋ ๋ฐฑ์ค ํน์ง์ค ๋ณ๋ก ์์ข์ํ๋ output๊ฐ์ ์ปค์คํฐ๋ง์ด์ฆ? ํด์ฃผ์ด์ผ ํ๋ ๊ฒ ๊ฐ์๋ค. ๋ณดํต ๋ต์ด [1, 2, 3] ์ด๋ฉด ๊ทธ๋ ๊ฒ ๊ฒฐ๊ณผ๋ฅผ ์ฃผ๋ฉด ์ข์๋ฐ ์ฌ๊ธฐ์ <1,2,3> ์ด๋ ๊ฒ ๋ผ์ ์ปค์คํฐ๋ง์ด์ฆํ๋๋ฐ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค.
๊ทธ๋ฐ๋ฐ ์ด๋ฒ์ ์๊ฐ์ด๊ณผ์๋ค. ์ด ๋ถ๋ถ์ ๋ด๊ฐ ์ ๋ชป ์๊ฐํ๊ฒ n๋ฒ removeFirst()
, append()
๋ฅผ ํด์ฃผ๋ค ๋ณด๋ ๊ทธ๋ฌ๋ค. ์ง๋ฌธ๋์ ์ข ์ฐพ์๋ณด๋๊น ์๊ฐ์ด๊ณผ๋ฅผ ์ค์ด๋ ค๋ฉด ์ํํ๋ฅผ ์ด์ฉํ๋ค๊ณ ๋ ํด์ ๋๋ curPos๋ฅผ ์ด์ฉํด ํ์๋ค.
var curPos = 0
//while๋ฌธ์์์ ๋ฐ๋ณต๋๋ค.
curPos += (K-1)
curPos = curPos % values.count
๋คํํ ์ ํ๋ ธ๊ณ ์ฌ์ธ๊ฑฐ๋ผ ์๊ฐํ๋๋ฌธ์ ๊ฐ 1์๊ฐ ๋๊ฒ ํ์ด์ ์ข ์์ฌ์ ์ง๋ง ๊ทธ๋๋ ์ค๋ซ๋ง์ ํ์ ๋ํด ๋ค์ ์๊ฐํ ์ ์์ด์ ์ข์๋ฐ.