Love Every Moment

〔프로그래머스/파이썬〕더 크게 합치기 본문

PROGRAMMING::LANGUAGE/Python

〔프로그래머스/파이썬〕더 크게 합치기

해 송 2023. 7. 3. 13:44
반응형

 

출처

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


 

문제

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

12 ⊕ 3 = 123

3 ⊕ 12 = 312

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

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

 


 

예제

a	b	result
9	91	991
89	8	898

 


 

풀이(1)

def solution(a, b):
    strings = list(map(str, [a, b]))
    nums = [strings[0] + strings[1], strings[1] + strings[0]]
    if int(nums[0]) >= int(nums[1]):
        return int(nums[0])
    else:
        return int(nums[1])

파이썬 오랜만에 써본다고 list 를 아무데다가 막 써보다가 더 복잡하게 풀었다...

그냥 strA, strB = str(a), str(b) 가 더 깔끔할 듯!

 

풀이(2)

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

max()가 문자열 비교에도 쓰인다는 점을 활용하여 단축

 

풀이(3)

def solution(a, b):
	return int(max(f'{a}{b}', f'{b}{a}'))

f-string 을 활용하여 더욱 간략하게 해결 가능

 


 

노트

  • max() 를 문자열의 비교에도 적극 활용해보자
  • f-string 을 더 자주 써보자
반응형
Comments