프로그래머스 파이썬 가장 큰 수 프로그래머스 가장 큰 수 파이썬 파이썬 프로그래머스 가장 큰 수 파이썬 가장 큰 수 프로그래머스 가장 큰 수 프로그래머스 파이썬 가장 큰 수 파이썬 프로그래머스
가장 큰 수
https://programmers.co.kr/learn/courses/30/lessons/42746
문제 단순화
- numbers 라는 정수배열이 있다.
- 해당 배열의 요소를 이어붙여 만들 수 있는 가장 큰 수를 리턴한다.
문제풀이
배열의 요소를 문자열로 변환한 뒤, 정렬한다.
정렬한 요소를 붙여 리턴한다.
정렬 방법은 다음과 같다.
1. 자리수가 같은 경우 큰 수가 우선순위가 높다. ex) 156, 598 -> 598156 ex) 9,8 -> 98 2. 자리수가 다른 경우 앞 자리가 큰 수가 우선순위가 높다. ex) 156, 9 -> 9156 3. 한자리 수의 앞자리가 같은 경우, 두자리 수 보다 한자리 수가 우선순위가 높다. ex) 9, 98 -> 998 4. 한자리 수의 앞자리가 같은 경우, 세자리 수 보다 한자리 수가 우선순위가 높다. ex) 9, 989 -> 9989 5. 두자리 수의 앞자리가 같은 경우, 세번째 자리수가 첫번째 자리수보다 작으면 두자리 수가 우선순위가 높다. ex) 87 877 -> 87877 6. 두자리 수의 앞자리가 같은 경우, 세번째 자리수가 첫번째 자리수보다 크면 세자리 수가 우선순위가 높다. ex) 87 879 -> 87987 7. 두자리 수의 앞자리가 같고, 세번째 자리수와 첫번째 자리수가 같은 경우, 두번째 자리수가 작으면 세자리수가 우선순위가 높다. ex) 87 878 -> 87887 8. 두자리 수의 앞자리가 같고, 세번째 자리수와 첫번째 자리수가 같은 경우, 두번째 자리수가 크면 두자리수가 우선순위가 높다. ex) 89 898 -> 89898 - 첫번째 자리에 있는 수로 자리수를 늘린다. (1,2,3,4,5,6,7) ex) [우선순위(156) < 우선순위(598)] = "1561" < "5985" O ex) [우선순위(8) < 우선순위(9)] = "88" < "99" O ex) [우선순위(156) < 우선순위(9)] = "1561" < "99" O ex) [우선순위(98) < 우선순위(9)] = "989" < "99" O ex) [우선순위(989) < 우선순위(9)] = "9899" < "99" O ex) [우선순위(877) < 우선순위(87)] = "8778" < "878" O ex) [우선순위(87) < 우선순위(879)] = "878" < "8798" O ex) [우선순위(87) < 우선순위(878)] = "878" < "8788" O ex) [우선순위(898) < 우선순위(89)] = "8988" > "898" X - 마지막 자리에 있는 수로 자리수를 더 늘린다 (1,2,3,4,5,6,7,8) ex) [우선순위(156) < 우선순위(598)] = "15616" < "59858" O ex) [우선순위(8) < 우선순위(9)] = "888" < "999" O ex) [우선순위(156) < 우선순위(9)] = "15616" < "999" O ex) [우선순위(98) < 우선순위(9)] = "9898" < "999" O ex) [우선순위(989) < 우선순위(9)] = "98999" < "999" O ex) [우선순위(877) < 우선순위(87)] = "87787" < "8787" O ex) [우선순위(87) < 우선순위(879)] = "8787" < "87989" O ex) [우선순위(87) < 우선순위(878)] = "8787" < "87888" O ex) [우선순위(898) < 우선순위(89)] = "89888" < "8989" O
코드
def solution(numbers):
strs = [str(x) for x in numbers]
strs.sort(key=lambda x : x + x[0] + x[-1], reverse=True)
answer = "".join(strs)
return str(int(answer))
'프로그래머스' 카테고리의 다른 글
프로그래머스 K번째수 파이썬 (0) | 2021.09.08 |
---|---|
프로그래머스 이중우선순위큐 파이썬 (0) | 2021.09.08 |
프로그래머스 디스크 컨트롤러 파이썬 (0) | 2021.09.08 |
프로그래머스 더 맵게 파이썬 (0) | 2021.09.07 |
프로그래머스 주식가격 파이썬 (0) | 2021.09.07 |