Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- array
- geometry
- Data Structure
- 파이썬
- two pointers
- Math
- sorting
- database
- greedy
- bit manipulation
- Method
- Matrix
- Binary Tree
- Tree
- simulation
- Number Theory
- java
- SQL
- dynamic programming
- hash table
- implement
- Stack
- 자바
- 코테
- 구현
- Class
- string
- 코딩테스트
- Counting
- Binary Search
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.1] 콜라츠 추측 본문
1. Input
1) 자연수 num
2) 콜라츠 추측의 계산 규칙
- 1단계: 숫자가 짝수라면 2로 나누고, 홀수라면 3을 곱하고 1을 더한다.
- 2단계: 1이 될 때까지 1단계를 반복한다.
2. Output
1) num을 규칙에 따라 계산했을 때 1이 될 때까지 계산한 횟수
2) 500번을 반복해도 1이 되지 않으면 –1 반환
3. Constraint
1) num은 1 이상 8,000,000 미만인 정수
4. Example
Input: num=6 -> Output: 8
설명:
6 -> 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1
5. Code
1) 첫 코드(2022/??)
int count = 0;
long n = num; // 계산과정에서 overflow가 일어나는 것을 방지
if(num == 1) return 0;
else{
while(count<500){
if(n%2 == 0) n /= 2;
else n = n*3 +1;
count++;
if(n==1) break;
}
return count>=500 ? -1 : count;
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.2] 최댓값과 최솟값 (0) | 2022.11.23 |
---|---|
[프로그래머스/Lv.1] 최대공약수와 최소공배수 (0) | 2022.11.23 |
[프로그래머스/Lv.1] 평균 구하기 (0) | 2022.11.23 |
[프로그래머스/Lv.1] 하샤드 수 (0) | 2022.11.23 |
[프로그래머스/Lv.1] 핸드폰 번호 가리기 (0) | 2022.11.23 |