연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
a
와 b
가 주어졌을 때, a
⊕ b
와 2 a
b
중 더 큰 값을 return하는 solution 함수를 완성해 주세요.단, a
⊕ b
와 2 a
b
가 같으면 a
⊕ b
를 return 합니다.
a | b | result |
---|---|---|
2 | 91 | 364 |
91 | 2 | 912 |
입출력 예 설명
입출력 예 #1
a
⊕ b
= 291 이고, 2 a
b
= 364 입니다. 둘 중 더 큰 값은 364 이므로 364를 return 합니다.입출력 예 #2
a
⊕ b
= 912 이고, 2 a
b
= 364 입니다. 둘 중 더 큰 값은 912 이므로 912를 return 합니다.def solution(a, b): answer = a * 10**len(str(b)) + b if answer < 2 * a * b: answer = 2 * a * b return answer
코드 간단 소개
- a, b를 연결해서 answer에 넣는다.
- a, b가 int형이기 때문에 (a * 10^(b의 자릿수))를 해서 b를 더한다.
- b의 자릿수를 구하기 위해 len(str(b))를 한다.
- answer과 2ab를 if문으로 비교하여 더 큰 것을 찾아 리턴한다.
def solution(a, b): return max(int(str(a) + str(b)), 2 * a * b)
- max()를 사용해 풀이한다.
- int(str(a) + str(b))를 한다. 문자열로 a, b를 합친다음에 int로 정수형으로 변환한다.
- 앞에서 변환한 숫자와 2 a b를 max에 넣어 큰 값을 return한다.
좋은 정보 감사합니다