A Sign of Inequality - Back Tracking
๋ฌธ์ ์กฐ๊ฑด์ ๋ง์ง ์๊ฑฐ๋ ๊ณ์ ์ฌ๊ทํธ์ถํด๋ ์ ๋ต์ด ๋์ค์ง ์์ ๊ฒฝ์ฐ ๊ณ์ ์ฌ๊ท๋ฅผ ์คํํ๋ ๊ฒ์ ๋ฉ์ถ๋ ๊ฒ์ ๋ฐฑํธ๋ํน(Back Tracking)์ด๋ผ๊ณ ํ๋ค.
์์์ ํ์ด๋ณธ ๋ถ๋ฑํธ(A Sign of Inequality) ๋ฌธ์ ๋ฅผ ๋ฐฑํธ๋ํน์ ์ด์ฉํ์ฌ ์๊ฐ์ ํจ์ฌ ์ค์ผ ์ ์๋ค. ๊ทธ ๋ฐฉ๋ฒ์ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํด์ฃผ๋ ๊ฒ์ด๋ค.
์ด ๋ฌธ์ ์์ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๋, ์กฐ๊ฑด์ ์ฒดํฌํด์ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์๋ ๊ฒฝ์ฐ๋ ์ฒ๋ฆฌํ์ง ์๋๋ก ํ๋ ๊ฒ์ด๋ค. ์์์๋ ๋ค์ ๊ฒฝ์ฐ๋ฅผ ํธ์ถํ ๋ ์กฐ๊ฑด ์ฒดํฌํ์ง ์๊ณ index==n+1์ด ๋์ผ๋ง ์กฐ๊ฑด์ ์ฒดํฌํด์ฃผ์๋๋ฐ, ๋ฐฑํธ๋ํน๋ฐฉ์์์๋ ํ์ฌ์์ ์ซ์๋ฅผ ์ถ๊ฐํ ๋๋ง๋ค ์กฐ๊ฑด์ ์ฒดํฌํด์ค๋ค!
๋ถ๋ฑํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด : input[ ] = {<,<} ํ์ฌ์ ์ธ๋ฑ์ค : index ํ์ฌ ๋ฃ์ ์ : i
=> s.charAt(index-1)๊ณผ i๋ฅผ ๋น๊ตํ๋ค!์ด ๋ ๋น๊ตํ๋ ๋ถ๋ฑํธ๋ input(index-1)์ด ๋๋ค! ์กฐ๊ฑด ๊ฒ์ฌํ๋ ํจ์๋ฅผ ์๋์ฝ๋๋ก ๋ค์ ๊ตฌํํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. boolean ok(a,b,op) { if(op == '<') { if(a>b) return false;} if(op == '>') { if(a<b) return false;} return true; }
ํ์ง๋ง ํ์ฌ s.charAt(index-1)์ char ํ์ ์ด๊ณ , i๋ int ํ์ ์ด๋ค. ๋๊ฐ์ ์๋ฃํ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ char ํ์ ์ผ๋ก ํต์ผํด์ค๋ค.=> (char)i+'0'
์์ค ์ฝ๋ ๊ตฌํ 1) ์กฐ๊ฑด ์ฒดํฌ ํจ์
2) ๋ฐฑํธ๋ํน : ํ์ฌ index์ ์ i๋ฅผ ๋ฃ์ ๋๋ง๋ค ์กฐ๊ฑด ์ฒดํฌ
๊ฒฐ๊ณผ ํ์ธ : ๋ฐฑํธ๋ํน ์๋ฃจ์ ์ด ์ฝ 3๋ฐฐ ์ ๋ ๋ ๋น ๋ฅธ ๊ฒ์ ํ์ธํ ์ ์๋ค.
Last updated
Was this helpful?