티스토리 뷰
https://programmers.co.kr/learn/courses/30/lessons/12943
#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
- 넥사크로
- C++
- 오라클
- 스프링부트
- 환경설정
- 백준
- CSS
- 네트워크
- 이클립스
- 부트스트랩
- Thymeleaf
- svn
- 국비교육
- Java
- SQL
- CS
- 프로그래머스
- JVM
- HeidiSQL
- 인턴
- Open API
- JSP
- C
- 스프링
- 데이터베이스
- 오류
- 개발용어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함