๋ฐ์ํ
๐ ์ค๋ ํ ์ผ
โ๏ธ Toy ๋ฌธ์ ํ๊ธฐ (rockPaperScissors)
์ฌ๊ท์ ์ด์ ์ข ์ต์ํด์ก๋ ์ถ์๋๋ฐ ๋ง์ ๋ ๋ฌธ์ ๋ฅผ ๋ง๋๋ณด๋๊น ์ฝ๊ฒ ํ๋ฆฌ์ง ์์๋ค. ์๋์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ฐจ๊ทผ์ฐจ๊ทผ ํธ๋ ์ต๊ด์ ๋ค์ฌ์ผํ๋๋ฐ ์๊ฐ๋ณด๋ค ์ ์๋๋ ๊ฒ ๊ฐ์์ ํ์๋ ๋ฌธ์ ๋ค์ ์ฝ๋๋ฅผ ๋ฐ๋๋ก ์๋์ฝ๋๋ก ๋ฐ๊ฟ๋ณด๊ฑฐ๋ ์ฃผ์์ ๋ฌ์๋ณด๋ฉฐ ์ฐ์ต ์ค์ด๋ค.
โ๏ธ N-Queens ๋ฌธ์ ํ๊ธฐ
DFS, ๋ฐฑํธ๋ํน์ ์ด์ฉํด ํด๊ฒฐํ์ผํ๋ N Queens ๋ฌธ์ ๋ฅผ ํ์๋ค. ์ผ๋จ์ ์ฃผ์ด์ง ํ์ผ์ ์๋ ๋ฉ์๋๋ค๊ณผ ์์ฑ์ด ์ด๋ค ๊ฑธ ์๋ฏธํ๋ ์ง ํ์ ํ๋ ๊ฒ์ด ๊ฐ์ฅ ํต์ฌ์ด์๋ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๋ฅผ ์ ์ฒด์ ์ธ ๊ด์ ์์ ๋จผ์ ์๊ฐํ๊ณ ํ๋์ฉ ์ชผ๊ฐ๋ฉฐ ์กฐ๊ฑด์ ์ถ๊ฐํ๋๊ฒ ์ค์ํ๋ค๋ ๊ฒ๋ ๋๊ผ๋ค. ๊ฐ๋ ์ค๋ช ๋ง ์ฝ์ด๋ดค์ ๋๋ ๋ฐฑํธ๋ํน์ด ๋ญ์ง ๊ฐ๋ ์ ์์ค๊ณ ์ด๋ฆ๋ง ๋ณด๊ณ ์์ฒญ๋ ๊ธฐ์ ์ธ๊ฐ ์ถ์๋๋ฐ, ์ง์ ํด๋ณด๋๊น '๊ทธ๋ฅ ์ผ๋จ ๋๋๋ฐ๊น์ง ํด๋ณด๊ณ , ์๋๋ฉด ์ด์ ์ผ๋ก ๋๋์๊ฐ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ ๊ฒ'์ด๋ผ๋ ๋ฐฑํธ๋ํน์ ์๋ฏธ๋ฅผ ๊นจ๋ฌ์ ์ ์์๋ค. ๊ทธ๋ฆฌ๊ณ DFS๋ผ๋ ๋ง์ ๊ณ์ ํธ๋ฆฌ ํํ๋ฅผ ๋ ์ฌ๋ ค์ ์คํ๋ ค ํท๊ฐ๋ ธ๋๋ฐ, ๊ทธ๋ณด๋ค๋ ๊ณผ์ ์์ฒด์ ์ง์คํ๊ณ ์์์ ์กฐ๊ฑด์ ์๊ฐํ๋ฉฐ ์ ๊ทผํด์ผ ํ๋ ๋ฌธ์ ์๋ค.
๐ ๊ธฐ์ตํ ๊ฒ
โ๏ธ label
label ํค์๋๋ break, continue ๊ตฌ๋ฌธ๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์๋๋ฐ, ์ํ๋ ์๋ณ์๋ก ๊ตฌ๋ฌธ ์์ ์ถ๊ฐํ๋ฉด ๋๋ค. label์ด ๋ถ์ ๊ณณ์์ ๋ฐ๋ณต๋ฌธ์ ๋ฉ์ถ๊ฑฐ๋ ๋ค์ ์ํ์ํฌ ์ ์๋ค.
var i, j;
loop1:
for (i = 0; i < 3; i++) {
loop2:
for (j = 0; j < 3; j++) {
if (i === 1 && j === 1) {
break loop1;
}
console.log('i = ' + i + ', j = ' + j);
}
}
// Output is:
// "i = 0, j = 0"
// "i = 0, j = 1"
// "i = 0, j = 2"
// "i = 1, j = 0"
๐ ๋ ๊ณต๋ถํ ๊ฒ
โ๏ธ ์ฌ๊ท ๋ฌธ์ ๋ฅผ Stack ๊ตฌํ์ผ๋ก ํ์ด๋ณด๊ธฐ
โ๏ธ ์กฐํฉ, ์ค๋ณต ์กฐํฉ
๋ฐ์ํ
'Daily > Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
210127_TIL (0) | 2021.01.28 |
---|---|
210126_TIL (0) | 2021.01.27 |
210124_TIL (0) | 2021.01.25 |
210123_TIL (0) | 2021.01.24 |
210122_TIL (์๊ฐ๋ณต์ก๋, ์๋ฃ๊ตฌ์กฐ ๋ณต์ต) (0) | 2021.01.23 |
๋๊ธ