[프로그래머스]콜라츠 추측
https://school.programmers.co.kr/learn/courses/30/lessons/12943
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

1. 문제
콜라츠 추측이란 문제인데 짝수와 홀수의 특징을 구분하여 주어진 수를 1이 되도록 해줘야 하는 문제입니다.
2. 풀이
어려운 문제는 아니지만 626631을 주어진 계산법대로 적용할 경우 오버플로우가 발생하여 결과값이 -1이 아닌
488로 나오는 경우가 발생하니 주의해야 합니다. 이 경우엔 형변환을 하여 해당 변수가 정상적으로 계산이 되도록
해주는 작업을 해줘야 합니다.
*소스코드
|
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
|
public class Solution {
public int solution(int num) {
int answer = 0;
long n = num;
if (n == 1) {
return 0;
}
while (n != 1) {
if (Math.abs(n) % 2 == 0) {
n = Math.abs(n / 2);
} else if (Math.abs(n) % 2 != 0) {
n = (Math.abs(n * 3)) + 1;
}
answer++;
if (answer > 500) {
return -1;
}
}
return answer;
}
}
|
cs |
3. 느낀 점 및 추가사항
문제에 나온 조건대로 풀면 그리 어려운 문제는 아니었으나 예외 케이스가 발생하는 부분을 처리하는 과정에서
조금 애먹은 문제였다. 조건은 맞는데 답이 이상하게 나온다면 오버플로우를 꼭 고려해야 한다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
| [프로그래머스]-최소 직사각형 (0) | 2022.12.28 |
|---|---|
| [프로그래머스]부족한 금액 계산하기 (0) | 2022.12.27 |
| [프로그래머스]2016년 (0) | 2022.12.23 |
| [프로그래머스]자연수 뒤집어 배열로 만들기 (0) | 2022.12.08 |
| [프로그래머스]가운데 글자 가져오기 (0) | 2022.12.08 |
댓글
이 글 공유하기
다른 글
-
[프로그래머스]부족한 금액 계산하기
[프로그래머스]부족한 금액 계산하기
2022.12.27 -
[프로그래머스]2016년
[프로그래머스]2016년
2022.12.23 -
[프로그래머스]자연수 뒤집어 배열로 만들기
[프로그래머스]자연수 뒤집어 배열로 만들기
2022.12.08 -
[프로그래머스]가운데 글자 가져오기
[프로그래머스]가운데 글자 가져오기
2022.12.08