반응형
Level 2 정렬
문제 : https://programmers.co.kr/learn/courses/30/lessons/42746#
제출 코드
def solution(numbers):
answer = ''
arr = [str(x)*3 for x in numbers]
arr.sort(reverse = True)
for num in arr:
temp = num[:len(num)//3]
answer += temp
answer = str(int(answer))
return answer
정수가 최대 1000이므로 정수의 패턴을 앞에서부터 3개까지 비교할 수 있게 x3을 했습니다.
num[:len(num)//3] 때문에 성능이 뛰어나지 않은 것 같습니다. 하지만 앞에서부터 자르는 다른 방법을 몰라서 일단 이렇게 제출 했습니다.
좋아요를 가장 많이 받은 코드
def solution(numbers):
numbers = list(map(str, numbers))
numbers.sort(key=lambda x: x * 3, reverse=True)
return str(int(''.join(numbers)))
비교할 때만 x3 을 해주고 그 안에서 바로 정렬을 하는 것을 보고 sort의 인자 설정 방법을 다시 배웠습니다.
또한 join을 통해 문자로 리스트를 하나의 문자로 만드는 것을 복습할 수 있었습니다.
반응형
'ProblemSolving > 정렬' 카테고리의 다른 글
백준 1181 단어정렬 (파이썬) (0) | 2022.05.13 |
---|---|
프로그래머스 H-index (파이썬) (0) | 2022.05.06 |
백준 11652 카드 (python) (0) | 2022.03.28 |
백준 10989 수 정렬하기 3 (python) (0) | 2022.03.28 |
백준 2751 수 정렬하기 2 (python) (0) | 2022.03.28 |