관련 문제

https://school.programmers.co.kr/learn/courses/30/lessons/42746

 

프로그래머스

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

programmers.co.kr

 

코드

def solution(numbers):
    numbers_str = list(map(str, numbers))
    numbers_str.sort(key = lambda x : x * 3, reverse = True)
    return str(int(''.join(numbers_str)))

 

해결 포인트

numbers_str.sort(key = lambda x : x * 3, reverse = True)

핵심 문제 : 문자열의 비교 방식 이해

  • python 문자열의 경우 앞에 글자의 아스키코드에 따라서 크기가 정해짐. 
  • 만약 앞에 모든 것이 같다면 문자열의 길이에 따라 크기가 정해짐. 
  • 문제의 범위가 1000 까지이기에 3을 곱하면 순위를 구할수 있음. 
    • [50, 5] 일 때
    • "50" > "5"  -> 505가 만들어지지만
    • "55" > "5050" -> 550이 만들어진다. 

+ Recent posts