SPRING :: NOTE

[C] 숫자 붙이기 연산으로 두 수 비교하는 프로그램 작성 본문

Development Language/C · C++ · MFC

[C] 숫자 붙이기 연산으로 두 수 비교하는 프로그램 작성

RAYZIE 2023. 4. 25. 16:24
반응형
# 문제 설명
 - 연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환한다.
 - 예를 들면 다음과 같습니다.

 - 12 ⊕ 3 = 123
 - 3 ⊕ 12 = 312
 - 양의 정수 a와 b가 주어졌을 때, 
   a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 작성

 - 단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 한다.
#include <stdio.h>

int combine(int a, int b) {  // 연산 ⊕를 수행하는 함수
    int ret = a;
    while (b > 0) {
        ret *= 10;
        b /= 10;
    }
    return ret + b;
}

int solution(int a, int b) {
    int a_b = combine(a, b);
    int b_a = combine(b, a);
    if (a_b >= b_a) {
        return a_b;
    } else {
        return b_a;
    }
}

int main() {
    int a = 12, b = 3;
    int result = solution(a, b);
    printf("%d\n", result);
    return 0;
}

combine 함수는 두 정수를 붙여서 쓴 값을 반환한다.

solution 함수는 입력받은 두 정수 a와 b를 combine 함수를 이용하여 각각을 붙여서 쓴 a⊕b와 b⊕a의 값을 비교하여 더 큰 값을 반환하며, a⊕b와 b⊕a의 값이 같다면 a⊕b를 반환한다.

main 함수에서는 문제 예시인 a=12, b=3으로 입력하여 solution 함수를 실행한 결과를 출력합니다.

출력 결과는 다음과 같다.

# 입력 예시
a = 12, b = 3

# 출력 예시
123
반응형
Comments