Test/python

더 크게 합치기

soo15 2023. 5. 6. 21:34

[문제 설명]

연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 

예를 들면 다음과 같습니다.

  • 12 ⊕ 3 = 123
  • 3 ⊕ 12 = 312

양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 

더 큰 값을 return 하는 solution 함수를 완성해 주세요.


단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.


[제한사항]

1 ≤ a, b < 10,000

 


[입출력 예]

a b result
9 91 991
89 8 898


[입출력 예 설명]

입출력 예 #1)

a ⊕ b = 991 이고, b ⊕ a = 919 입니다. 

둘 중 더 큰 값은 991 이므로 991을 return 합니다.


입출력 예 #2)
a ⊕ b = 898 이고, b ⊕ a = 889 입니다. 

둘 중 더 큰 값은 898 이므로 898을 return 합니다.

 


[나의 풀이]

def solution(a, b):
    int_1 = int(str(a) + str(b))
    int_2 = int(str(b) + str(a))
    
    if int_1 > int_2:
        return int_1
    else:
        return int_2

 


[설명]

1. 문자열로 바꾼후 결합 후 int로 바꾸기

a = 9
b = 91

int_1 = int(str(a) + str(b))
int_2 = int(str(b) + str(a))

print(int_1)
print(int_2)

Out[1]:

991

919

 

2. 크기를 비교해서 큰 값을 return하기

if int_1 > int_2:
  print(int_1)
else:
  print(int_2)

Out[2]:

991

 


 

[다른 사람 풀이]

def solution(a, b):
    return int(max(f"{a}{b}", f"{b}{a}"))

 


 

[설명]

1. format을 이용하여 두 숫자를 결합하기

a = 9
b = 91

print(f'{a}{b}', f'{b}{a}')

Out[3]:

991 919

 

 

2. max를 이용하여 가장 큰 값을 int로 출력하기

a = 9
b = 91

print(int(max(f'{a}{b}', f'{b}{a}')))

Out[4]:

991