반응형
문제
https://codeup.kr/problem.php?id=3733
코드
#include <stdio.h>
#include <stdlib.h>
int memo[10000001] = {};
// x의 우박수 리턴해줌
long long int f(long long int x, long long int len){
if(x < 10000001 && memo[x] != 0)
return len + memo[x];
if(x % 2 == 1)
x = 3*x+1;
else
x /= 2;
return f(x, len+1);
}
int main(){
memo[1] = 1;
long long int result;
long long int maxNum = -1;
long long int maxResult = -1;
int a,b;
scanf("%d %d", &a, &b);
for(int i = a ; i <= b; ++i){
memo[i] = f(i, 0);
if(maxResult < memo[i]){
maxResult = memo[i];
maxNum = i;
}
}
printf("%lld %lld", maxNum, maxResult);
return 0;
}
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 단체사진 찍기 (0) | 2021.09.09 |
---|---|
[codeup] 4503 바이러스 (0) | 2021.09.04 |
[프로그래머스] 뉴스 클러스터링 (0) | 2021.09.03 |
[프로그래머스] 오픈채팅방 (0) | 2021.08.26 |
[프로그래머스] 문자열 압축 (0) | 2021.08.25 |
최근댓글