[코드카타] 두 수의 연산값 비교하기

seonyoung·2024년 8월 6일
0

📁 문제

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

12 ⊕ 3 = 123
3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 a b 중 더 큰 값을 return하는 solution 함수를 완성해 주세요.

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

📁 나의 틀린 풀이

def solution(a, b):
    if (int(a+b)>=int(2*a*b)):
        return int(a+b)
    elif (int(a+b)<=int(2*a*b)):
        return int(2*a*b)
    else:
        return int(a+b)
  • 정답일줄 알았는데 코드 실행을 해보니... 일부만 정답😥
  • 아무리 다르게 시도하며 풀어봐도 정답이 나오지 않아 결국 찾아보아습니다...

💡 다른 사람의 풀이

def solution(a, b):
    answer = 0
    
    num1 = int(str(a)+str(b))
    num2 = 2 * a * b
    
    if num1 > num2:
        answer = num1
    elif num1 < num2:
        answer = num2
    else:
         answer = num1   
    return answer

💡 또 다른 간단 풀이

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

💡 초간단 풀이

def solution(a, b):
    return max(int(str(a) + str(b)), 2 * a * b)

<문자열 결합>

  • str(a) + str(b)는 정수 a와 b를 문자열로 변환한 후 결합
  • int(...)는 이 문자열을 정수로 변환

<곱셈 계산>

  • 2 a b는 정수 a와 b를 곱하고 그 결과에 2를 곱함

<최대값 반환>

  • max(...) 함수는 두 계산 결과 중 더 큰 값을 반환

📌 나의 생각

  • 다른 풀이들을 보고 다양한 방식을 경험하도록 하고 조금 더 고민하고 생각해서 문제를 해결하는 능력을 많이 키워야겠다고 생각했습니다.
profile
원하는 바를 이루고 싶은 사람입니다.

0개의 댓글