Algorithm/์ธํ๋ฐ(inflearn)
๐ 05 - ์ ๋ง๋๊ธฐ(์คํ) ์ ๋ง๋๊ธฐ์ ๋ ์ด์ ์ ๋ฐฐ์น๋ฅผ ๋ํ๋ด๋ ๊ดํธ ํํ์ด ์ฃผ์ด์ก์ ๋, ์๋ ค์ง ์ ๋ง๋๊ธฐ ์กฐ๊ฐ์ ์ด ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ์ ๋ง๋๊ธฐ๊ฐ ๋ ์ด์ ๋ฅผ ๋ง๋ ๋๋ง๋ค ๋ช ๊ฐ์ ์กฐ๊ฐ์ด ๋ฐ์ํ๋ค. ์ด๋ฌํ ์กฐ๊ฐ์ด ์๊ธธ๋๋ง๋ค ๋ฐ๊ตฌ๋์ ๋ฃ์ด์ค๋ค๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ๋ง์ ๋์์ด ๋๋ค. ํ์ด ๋ฐฉ๋ฒ for ๋ฌธ์ ๋๋ฉด์ '('๋ฅผ ๋ง๋๋ฉด ๋ฌด์กฐ๊ฑด ์คํ์ ๋ฃ๋๋ค. ')'๋ฅผ ๋ง๋๋ฉด pop() ํจ์๋ฅผ ์ด์ฉํด ์คํ์์ ์๋ฃ๋ฅผ ๊บผ๋ด๋๋ฐ, ์ฌ๊ธฐ์ s[i - 1]์ ๊ฐ์ด '('์ด๋ผ๋ฉด ์ฌ๋ ๊ดํธ์ ๋ซ๋ ๊ดํธ์ ์ธ์ ํ ์์ผ๋ก ๋ ์ด์ ์ ํด๋นํ๋ค. ์คํ์ ๊ธธ์ด๊ฐ ์ ๋ง๋๊ธฐ์ ๊ฐ์์ด๋ฏ๋ก ์คํ์ ๊ธธ์ด๋ฅผ answer ๋ณ์(๋ฐ๊ตฌ๋)์ ๋์ ์ํจ๋ค. s[i - 1]์ ๊ฐ์ด ')'์ด๋ผ๋ฉด ์ ๋ง๋๊ธฐ์ ์ค๋ฅธ์ชฝ ๋์ ๋ํ๋ด๋ฏ๋ก answer++์..
Algorithm/์ธํ๋ฐ(inflearn)
๐ 04 - ํ์์ ์ฐ์ฐ(postfix) ํ์์ฐ์ฐ์์ด ์ฃผ์ด์ง๋ฉด ์ฐ์ฐํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค. ๐ ๋์ ํ์ด ๋ฐฉ๋ฒ ์ฒ์์ ์ฐ์ฐํ ๊ฒฐ๊ณผ๋ฅผ ์คํ์ ๋ฃ์ง ์๊ณ answer ๋ณ์์ ์ ์ฅํ๋ ๋ฐฉ์์ผ๋ก ํ์๋ค. ํ์ด ๊ณผ์ ์์ answer = 0์ผ ๊ฒฝ์ฐ ์ฐ์ฐ์ด ์ด๋ฃจ์ด์ง ์ ์ด ์๋ค๋ ๊ฒ์ผ๋ก ์๊ฐํ์ฌ ์ฐ์ฐ์ ์ํด pop() ํจ์๋ฅผ ๋ ๋ฒ ์ด์ฉํด ๋ฐฐ์ด์์ ์๋ฃ๋ฅผ ๊บผ๋ธ๋ค. ํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ด '655-+'์ด ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค๋ฉด ์ฒซ ๋ฒ์งธ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๊ฐ 0์ด ๋์ค๊ธฐ ๋๋ฌธ์ ์ ํ์ด ๋ฐฉ๋ฒ์ด ์ณ์ง ์๋ค๋ ๊ฒ์ ์ ์ ์๋ค. ์ฐ์ฐํ ๊ฒฐ๊ณผ๋ฅผ ์คํ์ ๋ฃ๋ ๋ฐฉ์์ผ๋ก ํ๋ฉด ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ํ์ด ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค. for ๋ฌธ์ ๋๋ฉฐ ํด๋น ๊ฐ์ด ์ซ์์ธ์ง ์๋์ง ๊ฒ์ฌํ๋ค. ์ด๋ isNaN() ํจ์๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค. ์ซ์๋ผ๋ฉด ..
Algorithm/์ธํ๋ฐ(inflearn)
๐ 03 - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ(์นด์นด์ค ๊ธฐ์ถ) ์ฒ์ ์
๋ ฅ ๊ฐ์ ๋ํ ์ดํด๋ฅผ ์๋ชปํ์ฌ ํ์ด๊ฐ ์๋ฒฝํ์ง ์์๋ค..๐ ๋ค์์ 2์ฐจ์ ๋ฐฐ์ด ๋ฌธ์ ๊ฐ ๋์ค๋ ๊ฒฝ์ฐ row, column์ ๋ํ ์ธ์์ ์ ๋๋กํ ํ ์ฝ๋๋ฅผ ์ง๋ฉด ์ด๋ฌํ ์ค์๋ ๋ง์ ์ ์์ ๊ฒ ๊ฐ๋ค. ์ง๊ฒ๋ก ์ธํ์ ๋ฝ๊ณ ๋ ์ดํ์ ํด๋น ๊ฐ์ 0(๋น ์นธ์ ์๋ฏธ)์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ฒ๋ ์์ด์๋ ์๋๋ค. ํ์ด ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค. ํ์ด ๋ฐฉ๋ฒ moves ๋ฐฐ์ด์ ์ฐจ๋ก๋๋ก ๋๋ฉฐ ์ง๊ฒ๊ฐ ์์นํด์ผ ํ ๊ณณ(pos)์ ์ฐพ๋๋ค. ์ง๊ฒ๊ฐ ๋ด๋ ค์ค๋ column์ 0(๋น ์นธ)์ด ์๋ ๊ฐ์ด ์๋ค๋ฉด ์ธํ์ ๋ฝ๊ณ (tmp) ์ธํ์ด ์๋ ์๋ฆฌ์ ๊ฐ์ 0์ผ๋ก ๋ฐ๊ฟ์ค๋ค. ํ์ฌ ์ง๊ฒ์ ๊ฐ(tmp)๊ณผ ๋ฐ๊ตฌ๋ ๋ง์ง๋ง ๊ฐ์ด ๊ฐ๋ค๋ฉด pop() ํจ์๋ฅผ ์ด์ฉํด ๋ฐ๊ตฌ๋์์ ๊ฐ์ ๊บผ๋ธ ํ answer += 2๋ฅผ ..
Algorithm/์ธํ๋ฐ(inflearn)
๐ ๋ฌธ์ ์
๋ ฅ๋ ๋ฌธ์์ด์์ ์๊ดํธ ( ) ์ฌ์ด์ ์กด์ฌํ๋ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๊ณ ๋จ์ ๋ฌธ์๋ง ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค. ๐ง๐ป๐ป ๋์ ํ์ด ๋ฐฉ๋ฒ for..of ๋ฌธ์ผ๋ก ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ฐจ๋ก๋๋ก ๋๋ฉด์ '('๊ฐ ๋์ค๋ฉด push() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด์ ์์๋ฅผ ์ฝ์
ํ๋ค. ')'๊ฐ ๋์ค๋ฉด pop() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด์์ ์์๋ฅผ ๊บผ๋ธ๋ค. ๋ฌธ์๊ฐ ๋์ค๋ฉด ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ํ์ธํ๊ณ , ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 0์ด๋ฉด ๊ดํธ ์ฌ์ด์ ์๋ค๋ ๊ฒ์ด๋ฏ๋ก answer ๋ณ์์ ๋ฌธ์๋ฅผ ๋์ ์ํจ๋ค. ๐จ๐ผ๐ซ ๊ฐ์ฌ๋ ํ์ด ๋ฐฉ๋ฒ pop() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด์์ ์์๋ฅผ ๊บผ๋ด๋ฉด ๊บผ๋ธ ์์๋ฅผ ๋ฆฌํดํ๋คโ for ๋ฌธ์ ๋๋ฉด์ ')'๊ฐ ๋์ค๋ฉด while ๋ฌธ์ ์ฌ์ฉํด ์ง๊ฟ์ธ'('์ด ๋์ฌ ๋๊น์ง ๋ฐฐ์ด์์ ์์๋ฅผ ๊บผ๋ธ๋ค. ')'๊ฐ ์๋๋ผ๋ฉด push() ๋ฉ์๋๋ฅผ ์ฌ..
Algorithm/์ธํ๋ฐ(inflearn)
๐ ๋ฌธ์ ๊ดํธ๊ฐ ์
๋ ฅ๋๊ณ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด๋ฉด "YES", ์ฌ๋ฐ๋ฅด์ง ์์ผ๋ฉด "NO"๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค. (())() ์ด๊ฒ์ ๊ดํธ์ ์์ด ์ฌ๋ฐ๋ฅด๊ฒ ์์นํ๋ ๊ฑฐ์ง๋ง, (()()))์ ์ฌ๋ฐ๋ฅธ ๊ดํธ๊ฐ ์๋๋ค. ์ด ๋ฌธ์ ๋ ์๋ฃ๊ตฌ์กฐ ์ค ์คํ์ ํ์ฉํ๋ ๋ฌธ์ ์ด๋ค. JavaScript์์ ์คํ์ ๋ฐฐ์ด์ ์ด์ฉํด ๊ตฌํํ๋ฉด ๋๋ค. ์คํ ์๋ฃ๊ตฌ์กฐ๋ LIFO(Last In First Out) ๊ตฌ์กฐ๋ก ๋์ด ์์ผ๋ฉฐ, push(), pop() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฃ๋ฅผ ๋ฐ์ด ๋ฃ๊ณ ๊บผ๋ผ ์ ์๋ค. ํ๋ง๊ธ์ค ๊ณผ์๋ฅผ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค. ๋ง์ง๋ง์ ๋ฃ์ ๊ณผ์๋ฅผ ๊ฐ์ฅ ๋จผ์ ๋จน๊ฒ ๋๋ ๊ฒ๊ณผ ๊ฐ์ ์๋ฆฌ์ด๋ค. ๐จ๐ป๐ป ๋์ ํ์ด ๋ฐฉ๋ฒ for..of ๋ฌธ์ ์ฌ์ฉํด ๋ฐฐ์ด์ ์์๋ฅผ ์ฐจ๋ก๋๋ก ๋๋ฉฐ '('๋ฅผ ๋ง๋๊ฒ ๋๋ฉด push() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ์์๋ฅผ ์ฝ..