🌏 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1️⃣ 풀이
functools의 cmp_to_key를 이용한 방법
functools.cmp_to_key(func)는 정렬 함수의 key 매개변수에 함수를 전달할 때 사용하는 함수이다.
func() 함수는 두 개의 인수를 입력하여 첫 번째 인수를 기준으로
그 둘을 비교하고 작으면 음수, 같으면 0, 크면 양수를 반환하는 비교 함수이어야 한다.
from functools import cmp_to_key
def sorting(n1, n2):
return int(n2 + n1) - int(n1 + n2)
def solution(numbers):
numbers = list(map(str, numbers))
numbers.sort(key=cmp_to_key(sorting))
return str(int(''.join(numbers)))
2️⃣ 풀이
numbers의 모든 원소는 0이상 1000이하의 수이기 때문에, 자릿수를 3자리 이상으로 맞춰서 문자열 비교하는 방법
6 > 666
10 > 101010
2 > 222
def solution(numbers):
numbers = list(map(str, numbers))
numbers.sort(key=lambda x: x*3, reverse=True)
return str(int(''.join(numbers)))
728x90
'💡코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 | 파이썬 python] 최소직사각형 (0) | 2023.04.21 |
---|---|
[프로그래머스 | 파이썬 python] H-Index (0) | 2023.04.21 |
[프로그래머스 | 파이썬 python] K번째 (0) | 2023.04.18 |
[프로그래머스 | 파이썬 python] 이중우선순위큐 (0) | 2023.04.18 |
[프로그래머스 | 파이썬 python] 디스크 컨트롤러 (0) | 2023.04.18 |