Algorithm
[Java] ์ฝ๋ผ์ธ ์ถ์ธก
O'mil
2024. 5. 10. 12:32
728x90
๐ ๋งํฌ
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ ๋ฌธ์ ์ค๋ช
- Collatz๋ผใด ์ฌ๋์ ์ํด ์ ๊ธฐ๋ ์ถ์ธก์ ๋ณด๊ณ ๋ช ๋ฒ์ ๋ฐ๋ณตํด์ผ ํ๋์ง ๋ฐํํด๋ผ
๋จ, ์ฃผ์ด์ง ์๊ฐ 1์ธ ๊ฒฝ์ฐ์๋ 0์, ์์ ์ 500๋ฒ ๋ฐ๋ณตํ ๋๊น์ง 1์ด ๋์ง ์๋๋ค๋ฉด -1์ ๋ฐํ
๐ ์์
โ๏ธ ํ์ด ์์
- num์ด 1์ด ์๋ ๋ while๋ฌธ์ผ๋ก ๋ฐ๋ณต
- cnt๊ฐ 500๋ฒ์ด๋ฉด -1 ๋ฐํ
- ์กฐ๊ฑด๋ฌธ ์ฌ์ฉํด์, ์ง์๋ผ๋ฉด ๋๋๊ธฐ 2, ํ์๋ผ๋ฉด ๊ณฑํ๊ธฐ 3 ํ๋ฌ์ค 1.
- cnt๊ฐ ๋ฐํ
๐ป ์ฝ๋
class Solution {
public int solution(int num) {
int answer = 0;
while (num != 1) {
if (answer == 500) {
return -1;
}
if (num % 2 == 0) {
num /= 2;
} else {
num = num * 3 + 1;
}
answer++;
}
return answer;
}
}
๐ก ๊ฒฐ๊ณผ
์..? 488๋ฒ์ธ๋ฐ ์ -1..?
์ฐพ์๋ณด๋ ์ ๋ ฅ๋ฐ์ ๊ฐ์ด intํ์ด๋ผ์ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋จ๋ค.
long๊ฐ์ผ๋ก ๋ฐ๊พธ๋ฉด ๋๋ค๊ธธ๋ ๋ํผ ๋ฐ๊ฟจ๋ค!
๐ป์ฝ๋
class Solution {
public int solution(long num) {
int answer = 0;
while (num != 1) {
if (answer == 500) {
return -1;
}
if (num % 2 == 0) {
num /= 2;
} else {
num = num * 3 + 1;
}
answer++;
}
return answer;
}
}
๐ก๊ฒฐ๊ณผ
์ ๋์จ๋ค๐
์ด๋ ๊ฒ ๋ ํ๋๋ฅผ ๋ฐฐ์๊ฐ๋ค. ์ด๋ฐ ๊ฑธ ์์๋ด๋ ์ฌ๋์ ์ฒ์ฌ์ธ๊ฐ?
๐Reference
728x90