프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
from functools import cmp_to_key
def solution(numbers):
numbers.sort(key=cmp_to_key(lambda x, y: int(str(y) + str(x)) - int(str(x) + str(y))))
numbers = list(map(str, numbers))
return str(int(''.join(numbers)))
cmp_to_key라는 조건정렬 기능을 사용하면 쉽게 해결할 수 있다.
마지막 답을 return할 때, int로 한번 전환해주지 않으면 테스트 케이스 11번의 [0, 0, 0, 0] => '0000'을 통과할 수 없다.
아래는 cmp_to_key를 모를 때 쓸 수 있는 방법이다.
문자열끼리 비교를 실시할 경우 같은 자리까지만 비교하여 대소를 결정하기 때문에 사용할 수 있는 방법이다.
def solution(numbers):
numbers = list(map(str, numbers))
numbers.sort(key=lambda x: x * 3, reverse=True)
return str(int(''.join(numbers)))
'코딩테스트 연습' 카테고리의 다른 글
[programmers] 프로세스 / 큐 (0) | 2023.04.29 |
---|---|
[programmers] 기능개발 / 큐 (0) | 2023.04.29 |
[programmers] K번째수 / 정렬 (0) | 2023.04.29 |
[programmers] 베스트 앨범 / 해시 (0) | 2023.04.29 |
[programmers] 전화번호 목록 / 해시 map으로 효율성 up (0) | 2023.04.29 |