연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
12 ⊕ 3 = 123
3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 x a x b 중 더 큰 값을 return하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 2 x a x b가 같으면 a ⊕ b를 return 합니다.
1 ≤ a, b < 10,000
a b result
2 91 364
91 2 912
입출력 예 #1
a ⊕ b = 291 이고, 2 x a x b = 364 입니다. 둘 중 더 큰 값은 364 이므로 364를 return 합니다.
입출력 예 #2
a ⊕ b = 912 이고, 2 x a x b = 364 입니다. 둘 중 더 큰 값은 912 이므로 912를 return 합니다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int a, int b) {
char str_cat[10];
sprintf(str_cat, "%d%d", a, b);
int num_cat = atoi(str_cat);
int num_times = 2 * a * b;
if (num_cat > num_times)
return num_cat;
else
return num_times;
}
우선, sprintf 함수를 사용하여 a와 b를 문자열로 변환하고, 이를 더하여 str_cat라는 char형 배열에 저장합니다. 이렇게 하면 a와 b가 합쳐진 문자열이 str_cat에 저장되게 됩니다.
그 다음, atoi 함수를 사용하여 str_cat를 정수형으로 변환하여 num_cat 변수에 저장합니다. num_cat 변수는 a와 b를 붙여서 쓴 값과 같습니다.
그리고, num_times 변수에는 2 a b의 결과를 저장합니다.
마지막으로, if 문을 사용하여 num_cat와 num_times를 비교하여 더 큰 값을 반환합니다. 만약 num_cat가 num_times보다 크다면 num_cat를 반환하고, 그렇지 않다면 num_times를 반환합니다.