[프로그래머스] LV0. 두 수의 연산값 비교하기

윤인경·2023년 8월 1일
0

코딩테스트

목록 보기
17/38
post-thumbnail

문제 설명

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

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

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

제한사항

  • 1 ≤ a, b < 10,000

입출력 예

abresult
291364
912912

입출력 예 설명
입출력 예 #1

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

입출력 예 #2

  • ab = 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한다.
profile
코딩 공부 및 프로젝트 정리

1개의 댓글

comment-user-thumbnail
2023년 8월 1일

좋은 정보 감사합니다

답글 달기