티스토리 뷰
https://programmers.co.kr/learn/courses/30/lessons/12943
코딩테스트 연습 - 콜라츠 추측
1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2
programmers.co.kr
#include <string>
#include <vector>
using namespace std;
int solution(int num) {
long long n = num;
int answer = 0;
while(n != 1){
if(n % 2 == 0)
n /= 2;
else
n = (n * 3) + 1;
answer++;
if(answer == 500 && n != 1)
return -1;
}
return answer;
}
계산과정에서 21억을 초과하는 경우가 발생하기 때문에 C++의 경우 계산과정에 사용하는 변수를 long long으로 변경해야한다.
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] 가운데 글자 가져오기 : C++ (0) | 2021.08.11 |
---|---|
[프로그래머스] 최대공약수와 최소공배수 : C++ (0) | 2021.08.11 |
[프로그래머스] 하샤드 수 : C++ (0) | 2021.08.11 |
[프로그래머스] 행렬의 덧셈 : C++ (0) | 2021.08.11 |
[프로그래머스] 제일 작은 수 제거하기 : C++ (0) | 2021.08.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 백준
- 이클립스
- 환경설정
- 데이터베이스
- Open API
- 프로그래머스
- C
- 오류
- 네트워크
- CSS
- 개발용어
- CS
- svn
- 스프링
- JVM
- Thymeleaf
- 인턴
- 부트스트랩
- HeidiSQL
- SQL
- C++
- JSP
- 스프링부트
- 넥사크로
- 오라클
- 국비교육
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함