[Java]
int ab = Integer.parseInt("" + a + b);
int ab2 = 2 * a * b;
return Math.max(ab, ab2);
"" + a + b와 같은 문자열 결합 방식은 String.valueOf(a) + b보다 명확성이 떨어질 수 있습니다.
return Math.max(
(int)Math.pow(10, (int)Math.log10(b) + 1) * a + b,
2 * a * b
);
로그와 거듭제곱을 사용
Math.pow와 Math.log10를 사용하여 a를 b보다 큰 자릿수로 이동시키는 방식
큰 숫자나 특수한 경우에서 Math.pow와 Math.log10의 정확성 문제가 있을 수 있습니다.
예를 들어, 부동소수점 연산의 정밀도 문제가 발생할 수 있습니다.
문자열 변환의 오버헤드를 피하고자 할 때. 성능이 중요한 경우에 적합
수학적 연산이 익숙하지 않은 사람에게는 이해하기 어려울 수 있습니다. (That's me)
[Python]
return max(int(str(a) + str(b)), 2 * a * b)