본문 바로가기
프로그래머스/Python

[프로그래머스] 가장 큰 수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 10. 7.
728x90
반응형

 

 

프로그래머스

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

programmers.co.kr

 

1. 문제 설명

2. 풀이과정

해당 문제는 정렬 문자열을 활용하는 문제이다.

각 숫자는 0부터 1,000까지의 수이므로 최대 4자리 수이다.

모두 다른 자리의 수가 주어진다면, 어떤 조합이 가장 큰 수가 되는지 찾는 것은 많은 시간이 소요될 것이다.

하여 모든 수를 4자리 수 이상이 되도록 변경한 뒤 앞 4자리만 비교하여 내림차순 정렬을 해준다.

최소 1자리 수부터 있으므로 수를 문자열로 바꾸어 4배하면 모든 수를 4자리 이상의 수로 만들 수 있다.

 

  1. 모든 수를 문자열로 바꾸고 4개를 이어붙인 문자열의 앞에서 4자리까지만 가지고 내림차순으로 정렬한다. numbers.sort(key = lambda x: (str(x) * 4)[:4], reverse=True)
  2. 정렬한 수를 하나씩 불러와 for i in numbers
  3. 문자열로 바꿔 정답 문자열에 붙인다. answer += str(i)
  4. 모든 숫자가 0일 때를 생각하여 정답을 정수형으로 바꾸고 해당 정수를 다시 문자열로 바꿔 저장한다. answer = str(int(answer))
반응형

3. 소스코드

def solution(numbers):
    answer = ''
    
    numbers.sort(key=lambda x: (str(x) * 4)[:4], reverse=True)

    for i in numbers:
        answer += str(i)
        
    answer = str(int(answer))
    
    return answer
728x90
반응형