코테/프로그래머스
[프로그래머스/Lv. 1] 콜라츠 추측
imname1am
2023. 3. 2. 22:27
반응형
🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 코드
import java.util.*;
class Solution {
public int solution(int num) {
int answer = 0;
long n = num;
while(n != 1) {
if(n % 2 == 0) {
n /= 2;
} else {
n = n * 3 + 1;
}
answer++;
if(answer > 500) {
return -1;
}
}
return answer;
}
}
유의할 점 ‼ n을 int가 아니라 long으로 해야 값이 올바르게 나온다.
그 이유는 오버플로우가 발생하기 때문이라고...
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 다른 풀이들
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class Collatz {
public int collatz(int num) {
int answer = 0;
for (int i = 0; i < 500; i++) {
num = (num % 2 == 0) ? (num / 2) : (num * 3 + 1);
if (num == 1) return i + 1;
}
return -1;
}
}
for문을 사용하셨당
반응형