์ซ์์ผ๊ตฌ ๊ฒ์
์ ๋ก์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๊ฒ์๋ง๋๋ ๊ฐ์๋ฅผ ๋ณด๊ณ ์ค์ต์ ํด์ค๋ค๊ฐ ์ง๋ขฐ์ฐพ๊ธฐ ๊ฒ์ ๋ถ๋ถ๋ถํฐ๋ ๋๋ฌด ๋ณต์กํ๊ณ ์ด๋ ค์์ ์ ์ ๊ทธ ์ ์ ํ๋ ๊ฒ์๋ค์ ํผ์ ํ์ผ๋ก ์ฝ๋ฉ์ ํด๋ณด๋ ์๊ฐ์ ๊ฐ์ง๊ธฐ๋ก ํ๋ค.
๊ฐ์๋ฅผ ๋ฃ๋ค๋ณด๋ฉด ์ฌ์์ ์ ์ ๋ฉ์ถฐ๋์๋ค๊ฐ ํผ์ ์ฝ๋ฉ ํด๋ณด๋ ค๊ณ ํด๋ ์์ ์์์ด ์๊ณ ๋ช ์ด๋ง ๋๊ธฐ๋ฉด ์ฝ๋๋ฅผ ๋ณด๊ฒ ๋๋ค๋ณด๋
์์ ํ ๋ด๊ฒ์ด ์๋ ๋๋์ด ๋ค๊ธด ํ์๋ค.
์๋๋ ๊ณ์ฐ๊ธฐ๋ง๋๋ ๊ฒ ๋ถํฐ ํ๋ ค๊ณ ํ์ผ๋ ์ง๊ธ ์๊ฐ์ค์ธ ์ฝ๋์คํ ์ด์ธ ์์ ๊ณ์ฐ๊ธฐ๋ฅผ ๋ง๋ค ์์ ์ด๋ผ
์ซ์์ผ๊ตฌ๋ถํฐ ์ฐจ๊ธ์ฐจ๊ธ ํด๋ณด๋ ๊ฑธ๋ก!!
๋จผ์ ์ซ์์ผ๊ตฌ ๊ฒ์์ ๋ฃฐ์
์ปดํจํฐ๊ฐ 1 - 9๊น์ง์ ์ค๋ณต๋์ง ์๋ ์ซ์ 4๊ฐ๋ฅผ ๋ฝ๋๋ค.
๊ฒ์์ ํ๋ ์ ์ ๋ ์ด 10๋ฒ์ ๊ธฐํ๊ฐ ์๊ณ ์ปดํจํฐ๊ฐ ๋๋ค์ผ๋ก ๊ณ ๋ฅธ 4๊ฐ์ ์ซ์๋ฅผ ๋ง์ถ๋ฉด ๋๋ค.
์ด๋, ์ซ์๋ฟ๋ง ์๋๋ผ ์์๊น์ง ๋ง์ถฐ์ผ ํ๋ค. ํ๋ฆด ๋ ๋ง๋ค ํํธ๋ ์ค๋ค.
๋ง์ฝ 5728์ด๋ผ๋ ์ซ์๊ฐ ์ ๋ต์ด๊ณ ๋๋ 7129๋ผ๋ ๋ฒํธ๋ฅผ ์ ๋ ฅํ์์ผ๋ฉด
1์คํธ๋ผ์ดํฌ(์์๊น์ง ๋ง์ถ ๊ฒฝ์ฐ) 1๋ณผ(์ซ์๊ฐ ํฌํจ๋ง ๋์ด์์ผ๋ฉด)์ด๋ผ๋ ํํธ๋ฅผ ์ค๋ค.
์ซ์์ผ๊ตฌ์ ์์๋๋ฅผ ๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
์์๋ ๊ทธ๋ฆฌ๋ ์ต๊ด๋ ์ข ๊ธธ๋ฌ์ผ ํ ํ ๋ฐ.. ์์ง ๊ทธ๋ฆฌ๋๋ฐ์ ์ต์ํ์ง๊ฐ ์๋ค.

1. ์ซ์ ๋๋ค์ผ๋ก 4๊ฐ ๋ฝ๊ธฐ
๋ด๊ฐ ์์ฑํ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค. ์๋ ์๋ ์ค๋ก์ง Math.random()๋ง ์ฌ์ฉํ์๋๋ผ๋ฉด
์ ๋ก์ด๋๊ป์ ๋ง์ํ์๊ธธ ๊ฐ์ด ๊ณจ๊ณ ๋ก ๋์ค์ง ์๋๋ค๊ณ ํ๋ค.
๊ทธ๋์ ๋ง์ด๋ค ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ํผ์ ์์ด์ธ ์ ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. (์ด๊ฒ์ ๊ดํ ๋ด์ฉ์ ๋ฐ๋ก ๊ธ๋ก ๋จ๊ฒจ๋์์.)

๋์ถฉ ์ฝ๋๋ฅผ ๋ณด์๋ฉด ๊ธธ์ด๊ฐ 9์ผ ๋ฐฐ์ด์ ๋ง๋ค์ด undefined๋ก ๊ณต๊ฐ์ ์ฑ์๋๊ณ map์ ์ฌ์ฉํด 1๋ถํฐ 9๊น์ง์ ๊ฐ์ ์ฑ์ ๋ค.
๊ทธ๋ฆฌ๊ณ 4๊ฐ๋ฅผ ๋ฝ์์ผํ๋ ๋๋ค์ผ๋ก ๋์จ ๋ฒํธ์ ์์์ธ ๊ฐ์ ํ๋ ์ ๊ฑฐํ ๊ฐ์ value์ ๋ฃ๊ณ ๊ทธ๊ฒ์ answer ๋ฐฐ์ด์ ๋ฃ์ผ๋ฉด ๋๋คํ ๊ฐ 4๊ฐ๊ฐ ๋์จ๋ค.
์ ๋ก์ด๋์ ์ฝ๋
let numbers = []
for (let n = 0; n <= 9; n += 1) {
numbers.push(n)
}
let answer = []
for (let n = 0; n <= 3; n += 1) {
const index = Math.floor(Math.random() * numbers.length) // 0 ~ 9 ์ ์
answer.push(numbers[index])
numbers.splice(index, 1)
}
์ด๋ ๊ฒ ๋ณด๋ ๋ด ์ฝ๋๋ ๊ทธ๋ ๊ฒ ๋์์ง ์์ ๊ฒ ๊ฐ๋ค..!
2. ๋ต์ ์ฒดํฌํ๊ธฐ
์ผ๋จ ์ฌ๊ธฐ์ ์ฐจ์ด๊ฐ ์์๋ ๊ฒ์ด ์ ๋ก์ด๋์ ๋ต์ ์ ๋ ฅํ ๋ 5136 ์ด๋ฐ์์ผ๋ก ์ ๋ ฅํ๋ ๊ฒ์ ์๊ฐํ ๋ฐ๋ฉด
๋๋ 5 1 3 6 ์ด๋ฐ์์ผ๋ก ํ๊ณ ์ถ์๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ์ ์ฐจ์ด๋ ์์ง๋ง ํฐ ํ์ ๋น์ทํ๊ธฐ ๋๋ฌธ์ ์ฝ๋๋ฅผ ๋น๊ตํด๋ณด๋ ค ํ๋ค.
์ ๋ก์ด๋์ ๊ทธ๋ฆฌ๊ณ ๊ฒ์ฌํ๋ if๋ฌธ๋ค์ ํจ์๋ก ๋ฐ๋ก ๋ง๋ค์ด์ ์ฌ์ฉํ์ จ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ๊ทธ ํจ์์ ๋ฆฌํด๊ฐ์ด true์ด๋ฉด ๋ค์ ๋์๋ค์ด ์คํ์ด ๋๋๋ก ๋ง์ด๋ค.

3. ํํธ ์ฃผ๊ธฐ

์ด ๋ถ๋ถ์ ์ ๊ธฐ ๊ฒฐ๊ณผ ๊ฐ ๋์ค๋ ๋ถ๋ถ์ ์ด์ง ์ฐธ๊ณ ํ๋ค ใ

(value ๋ ์ ๋ ฅํ ๊ฐ)
์ ๋ก์ด๋์ indexOf()๋ฅผ ์ฌ์ฉํ์๋ค.
์๋ฅผ๋ค์ด ์ ๋ต์ด 3146์ด๊ณ ๋ด๊ฐ ์ ๋ ฅํ value๋ 1234์ด๋ฉด
i๊ฐ 0์ผ๋ answer[0] ์ 3์ด๊ณ ์ด ๊ฐ์ด value์ ๋ช๋ฒ์งธ์ ์๋๋ ๋ง์ด๋ค. ๊ทธ๋ผ ์ ๊ธฐ ์์ฑํ index์ ๊ฐ์ 2๊ฐ ๋๊ฒ ๋ค.
์ผ์นํ๋ ์ซ์๊ฐ ๋ฐ๊ฒฌ์ด ๋์๋ค๋ ๊ฒ์ 0์ด์์ ๊ฐ์ด ์๋ค๋ ๋ป์ด๊ฒ ๊ณ ์๋ฆฌ๊น์ง ๋๊ฐ์ผ๋ฉด if๋ฌธ์ผ๋ก ์ฒ๋ฆฌํด์ค๋ค.
indexOf๋ฅผ ์ฌ์ฉํ๋ค๋ ์๊ฐ์กฐ์ฐจ ๋ชปํ์๋๋ฐ ์ด๋ ๊ฒ๋ ์ฌ์ฉ์ด ๋๊ตฌ๋ผ ๋ผ๊ณ ์๊ฐํ๋ค..!
4. ์๋ํ ๊ฐ์ ๋ ์ ๋ ฅํ์ ๊ฒฝ์ฐ

tries๋ผ๋ ๋ฐฐ์ด์ ๋ด๊ฐ ์ ์ ๋ต์ pushํ๋ค. input๊ฐ์ ์ด์ ์ ๋ฐฐ์ด๋ก ๋ง๋ค์ด ๋์๋๋ฐ includes๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ฌธ์์ด๋ก ๋ง๋ค์ด์ค๋ค.
(๋ฐฐ์ด์ ์๋๋๋ผ๊ตฌ์..? ํน์ ๋๋ฉด ๋๊ธ๋ก ๋ง์ํด์ฃผ์ธ์..ใ ใ )
tries์ ์๋ ๊ฐ๋ค์ด ๋ค์ด๊ฐ๋ฉด tries์ ๋ค์ด๊ฐ๊ณ count๋ฅผ 1 ์ถ๊ฐํด์ฃผ๊ณ ์ด๋ฏธ ๊ธฐ์กด์ด ์๋ ๊ฐ์ด tries์ ๋ค์ด๊ฐ๋ฉด alert๋ก ๊ฒฝ๊ณ ๋ฉ์ธ์ง๊ฐ ๋ฌ๋ค.

join() ์ ๋ฐฐ์ด์ธ ๊ฐ์ ์ ๋ ๊ฒ ๋ฌธ์์ด๋ก ๋ณ๊ฒฝํด์ฃผ๋ ์์ฃผ ํธ๋ฆฌํ ๋ฉ์๋์ด๋ค.