[코딩 테스트] 두 수의 연산값 비교하기 Python

주먹밥밥·2024년 3월 9일

문제💡

연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.

12 ⊕ 3 = 123
3 ⊕ 12 = 312
양의 정수 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

입출력 예 설명
입출력 예

a ⊕ b = 291 이고, 2 * a * b = 364 입니다. 
둘 중 더 큰 값은 364 이므로 364를 return 합니다.

입출력 예

a ⊕ b = 912 이고, 2 * a * b = 364 입니다. 
둘 중 더 큰 값은 912 이므로 912를 return 합니다.

문제 해석✏️

정수로 계산한 숫자와 문자열로 합쳐 만든 숫자 비교

  • a ⊕ b = 291를 만들기 위해서는 str 만들어서 합쳐줘야함
  • 2 a b = 364를 만들기 위해서는 int 만들어서 더해줘야 함
  • if문을 이용해 비교

문제

def solution(a, b):
    str_a = str(a)
    str_b = str(b)
    int_a = int(a)
    int_b = int(b)
    
     if(int(str_a + str_b) > 2*int_a*int_b):
         return int(str_a + str_b)
     elif(int(str_a + str_b) == 2*int_a*int_b):
         return int(str_a + str_b)
     else:
         return int(2*int_a*int_b)
    
    
     answer = int(str_a + str_b)

다른 사람들의 풀이

	def solution(a, b):
    	answer = max(int(str(a)+str(b)),2*int_a*int_b)
    	return answer

max 함수를 이용해 이렇게 쉽게 풀 수 있는 걸 몰랐다. 이 문제를 풀면서 def에 대해서는 잘 알게 되었다

profile
코딩은 열심히 해야겠지...?

0개의 댓글