[프로그래머스] LV0. 더 크게 합치기

윤인경·2023년 8월 1일
0

코딩테스트

목록 보기
16/38
post-thumbnail

문제 설명

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

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

단, abba가 같다면 ab를 return 합니다.

제한사항

  • 1 ≤ a, b < 10,000

입출력 예

abresult
991991
898898

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

  • ab = 991 이고, ba = 919 입니다. 둘 중 더 큰 값은 991 이므로 991을 return 합니다.

입출력 예 #2

  • ab = 898 이고, ba = 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한다.
  • 문자열로도 더 큰것을 비교할 수 있는 것이 신기했다.
profile
코딩 공부 및 프로젝트 정리

0개의 댓글