https://school.programmers.co.kr/learn/courses/30/lessons/87389
function solution(n) {
for (let i = 0; i < n; i++) {
if (n % i === 1) {
return i;
}
}
}
๋จ์ํ ๋์ ํ์ด.
์๋ง ์๊ณ ๋ฆฌ์ฆ ์คํฐ๋๋ฅผ ์ํ๋๋ผ๋ฉด ์ ํ ์ค ์๊ณ ๊ทธ๋ฅ ๋์ด๊ฐ๊ฒ ์ง..!
<๋์ ๊ธฐ์กด ๊ณต๋ถ ๋ฐฉ์>
1. ์ด๋ป๊ฒ๋ ํ์ด๋ณธ๋ค.
2. ๋ง์ถ๋ค.
3. ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ์ฐธ๊ณ ํด ๋ชจ๋ฅด๋ ๋ฐฉ์, ์ฐธ๊ณ ํ ๋งํ ๋ฐฉ์, ๋ฉ์๋ ๋ฑ์ ๊ณต๋ถํ๋ค.
4. ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ํผ๋ค.
5. ๊ฐ๋ ์ฑ ๋ฉด์์ ์งง์ ์ฝ๋๊ฐ ์ข๋ค๊ณ ์๊ฐํ๋ค.
<๊ณ ์๋ค์ ํ์ด>
์ฒจ์ ์๊ฒ๋ ๋ชจ๋ฅด๊ณ ์ ์ฝ๋๋ฅผ ์ด๋ ๊ฒ ๊ธธ๊ฒ ์งฐ์ง? ์๊ฐํ๋ค.
ํ์ง๋ง ๊ณ ์๋ค์ ๋ค ์๊ฐ์ด ์์๋ ๊ฑฐ์๋ค...
๊ตณ์ด ์ํด๋ ๋๋ ๊ณ์ฐ์ ํ์ง ์๋๋ค.
1. x์ ์ด๊ธฐ ๊ฐ 3๋ถํฐ ์งํ
==> n์ด ์ง์๋ฉด 2๋ก ๋๋๋ฉด ๋๋จธ์ง๊ฐ 1์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์ x๋ 3๋ถํฐ ์์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ n์ด 1์ ์ ์ธํ ํ์ ์ผ ๊ฒฝ์ฐ ๋ฌด์กฐ๊ฑด 2๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ํ์๋ ์ฒดํฌํ ํ์ ์์ต๋๋ค. ์ฆ ์ง์๋ง ๊ณ ๋ คํ๋ฉด ๋ฉ๋๋ค.
2. ์ง์ n์ ๋ฐ๋ณต๋ฌธ์ผ๋ก ์ฒดํฌํ ๊ฒฝ์ฐ x๋ n-1๊น์ง ๊ฒ์ฌํ ํ์ ์์ต๋๋ค.
n % n-1 === 1์ด๋ฏ๋ก ๋ฐ๋ณต๋ฌธ์ ์กฐ๊ฑด์ x < n-1๊น์ง !
์ด๋ฒ ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์ ๋ ์ ์ถ๋ ฅ ์ 1, 2์ ์ค๋ช ์ด๋ ์ ํ ์ฌํญ์ ๋ณด๋ฉด ์ต์ ํ ํ ์ ์์ ๊ฒ๋๋ค
์ ํ์ฌํญ
3 ≤ n ----> 3 % 2 === 1 -> return 23๋ณด๋ค ์์ ์์ฐ์ ์ค์์ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์๊ฐ ์์ผ๋ฏ๋ก, 3์ return ํด์ผ ํฉ๋๋ค. ์ง์(4, 10) % 3 === 1 --> return 3๋ถํฐ ์์12๋ฅผ 11๋ก ๋๋ ๋๋จธ์ง๊ฐ 1์ด๊ณ , 11๋ณด๋ค ์์ ์์ฐ์ ์ค์์ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์๊ฐ ์์ผ๋ฏ๋ก ----> n % n-1 === 1
1๋ฒ ๋ฌธ์ ์์ ํ์ฐํ ์๋ ์ฐจ์ด๊ฐ ๋๋ ๊ฑธ ๋ณผ ์ ์๋ค.
๋ด๊ฐ ์ง ์ฝ๋ : 5.21ms
๊ณ ์๋์ ์ฝ๋ : 3.99 ms
์๊ฐ ๋ณต์ก๋๋ 0(n) ๋ณด๋ค ์ค์ผ ์ ์๋ ๋ฌธ์ ์ง๋ง ๊ฐ์ O(n) ์ผ์ง๋ผ๋ ์๊ฐ ์๋๋ ์ต์ 2๋ฐฐ์ ๋ ์ฐจ์ด ๋ฉ๋๋ค. ์๋ํ๋ฉด ์ฒ์์ ์ง์๋ ํ์๋ ํ๋จ์ผ๋ก ์ง์๋ง ๊ณ ๋ คํ๋ฉด ๋๊ธฐ๋๋ฌธ์ ๋๋ค
์ด๋ฐ ์ฝ๋๊ฐ ์์ฒญ ๋ง๋ค๋ฉด...?!
ํ๋ก๊ทธ๋จ์ด ์์ฒญ ๋๋ ค์ง ์๋ ์๊ฒ ๋ค...!
+
break ๋ฌธ์ ์์ฃผ ์ฐ์ง ์๋๊ฒ ์ข๋ค?
- ์ฝ๋๋ฅผ ๊ฐ์ ๋ก ๋๊ณ ๋์ค๋ ๊ฑฐ๊ธฐ ๋๋ฌธ์
- ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ค.
๋ผ๋ ์๊ฒฌ๋ ์๋ค๋๊ฑธ ์๋ ค์ฃผ์ฌ.