프로그래머스_가장 큰 수_python
2021. 8. 4. 23:55ㆍ코딩테스트
반응형
https://programmers.co.kr/learn/courses/30/lessons/42746#
def solution(numbers):
numbers = sorted(list(map(str, numbers)), reverse=True)
for i in range(1, len(numbers)):
for j in range(i, 0, -1):
if numbers[j-1]+numbers[j] < numbers[j]+numbers[j-1]:
numbers[j], numbers[j-1] = numbers[j-1], numbers[j]
else:
break
result = ''.join(numbers)
return '0' if int(result)==0 else result
[내코드]
sort reverse만 하게되면
['34', '30', '3'] 로 정렬됨. 원하는 결과값은 "34330"임.
->삽입정렬사용.
삽입정렬 : 필요할때만 위치를 바꾸므로 데이터가 거의 정렬되어 있을 때 효율적임.
join : 배열의 문자열 합치기
def solution(numbers):
numbers = list(map(str, numbers))
numbers.sort(key=lambda x: x*3, reverse=True)
return str(int(''.join(numbers)))
[다른사람코드]
1의 자리만 있는 것과 10, 100의 자리도 있는 데이터의 비교방법으로 데이터를 3번 반복.
반응형
'코딩테스트' 카테고리의 다른 글
프로그래머스_H-Index_python (0) | 2021.08.08 |
---|---|
프로그래머스_모의고사_python (0) | 2021.08.08 |
프로그래머스_부족한 금액 계산하기_python (0) | 2021.08.04 |
프로그래머스_K번째 수_python (0) | 2021.08.04 |
프로그래머스_이중우선순위큐_python (0) | 2021.08.04 |