[프로그래머스] 콜라츠 추측 ( 자바 )
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/12943
핵심
int 로 주어진 값을 long으로 변환
문제 자체는 단순한 편이다. 하지만, 작업을 최대 500회 곱하기나 나누기를 반복하게 된다.
입력된 수가 int로 주어졌지만, 곱하기를 반복하게 되면 3지수승으로 값이 증가하게 된다.
추가적으로 더 궁금한 점 있으면 댓글 달아주세요
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
class Solution {
public int solution(int num) {
long n = num;
// turn = 0; n이 처음부터 1로 주어지는 경우
for(int turn = 0; turn <= 500; turn++) {
if(n == 1) {
return turn;
}
if( n % 2 == 0) {
n /= 2;
}else {
n = n*3 + 1;
}
}
return -1;
}
}
|
cs |
'CS > 알고리즘 풀이' 카테고리의 다른 글
[ 프로그래머스 2020 카카오 공채 ] 실패율 (java) (0) | 2019.12.13 |
---|---|
[프로그래머스] 평균 구하기 ( java ) (0) | 2019.12.13 |
[프로그래머스] 최대공약수와 최소공배수 ( java ) (0) | 2019.12.13 |
[ 프로그래머스 ] 찾아라 프로그래밍 마에스터- 포켓몬 ( java ) (0) | 2019.12.12 |
[ 프로그래머스 ] 정수 내림차순으로 배치하기 ( java ) (2) | 2019.12.08 |