연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
a
와 b
가 주어졌을 때, a
⊕ b
와 b
⊕ a
중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.단, a
⊕ b
와 b
⊕ a
가 같다면 a
⊕ b
를 return 합니다.
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): answer = a*(10**len(str(b))) + b if answer < b*(10**len(str(a))) + a: answer = b * (10 ** len(str(a))) + a return answer
코드 간단 소개
- a, b를 연결해서 붙인다.
- a, b가 int형이기 때문에 (a * 10^(b의 자릿수))를 해서 b를 더한다.
- b의 자릿수를 구하기 위해 len(str(b))를 한다.
오류 발생
처음 len(b)를 했었는데 b는 int형이라 길이를 구할 수 없다.
따라서 b를 str로 변경한 다음에 길이를 구해야한다.
def solution(a, b): return int(max(f"{a}{b}", f"{b}{a}"))
- 문자열로 a, b를 합쳐서 어떤것이 더 큰것을 int형으로 변환하여 return한다.
- 문자열로도 더 큰것을 비교할 수 있는 것이 신기했다.