-
[알고리즘 문제] 프로그래머스 콜라츠 추측IT/알고리즘 2019. 5. 1. 11:40
간단한 알고리즘 문제를 가지고왔다. 수학자들은 어떻게 이런 공식들을 찾아내는지 정말 신기하다.....
소스코드↓↓↓
1234567891011121314151617181920212223242526272829303132333435363738public class Collatz {public static void main(String[] args) {// TODO Auto-generated method stubScanner scan = new Scanner(System.in);int n = scan.nextInt();System.out.println(guess(n));}//추측 함수public static int guess(int n){int result = n;int count = 0;//입력값이 1이되면 반복 종료while(result != 1){if(result%2 == 0){ //짝수일 경우result = result/2;}else if(result%2 == 1){ //홀수일 경우result = (result*3)+1;}count++; //시도 횟수 증가//500번 이상이면 -1 반환if(count > 500){count = -1;break;}}return count;}}cs 맨첨에 홀수일 경우를 그냥 else로 놨는데
자꾸 626331 값이 488인가..? 나와가지고 헤맸다. 문제가 잘못된건줄 ;
조건문을 result % 2 == 1 로 하고 나서야 -1이라는 제대로된 값을 얻을 수 있었는데, 솔직히 무슨 차이인지 잘 모르겠다 ;_; 혹시 아시는분 댓글로 살짝 ....ㅎㅎ
실행결과↓↓↓
원래 메인메소드 안에서 코딩하는걸 좋아하는데 (습관 ㅠㅠ) 메소드 만들어 사용하는 것에 익숙해지기 위해서 한번 간단한 문제를 메소드를 사용해서 만들어 봤다 ㅎㅎㅎ
'IT > 알고리즘' 카테고리의 다른 글
[알고리즘 문제] 프로그래머스 행렬의 곱셈 (2) 2019.05.22 [알고리즘 문제] 코딩도장 로또프로그램 (0) 2019.05.05 [알고리즘 문제] 프로그래머스 이상한 문자 만들기 (0) 2019.04.28 [알고리즘 문제] 정올 1583 : 개구리 탈출 (2) 2019.04.24 [알고리즘 문제] 프로그래머스 하샤드 수 (2) 2019.04.21