728x90
반응형
1. 문제 설명
2. 풀이과정
해당 문제는 정렬과 문자열을 활용하는 문제이다.
각 숫자는 0부터 1,000까지의 수이므로 최대 4자리 수이다.
모두 다른 자리의 수가 주어진다면, 어떤 조합이 가장 큰 수가 되는지 찾는 것은 많은 시간이 소요될 것이다.
하여 모든 수를 4자리 수 이상이 되도록 변경한 뒤 앞 4자리만 비교하여 내림차순 정렬을 해준다.
최소 1자리 수부터 있으므로 수를 문자열로 바꾸어 4배하면 모든 수를 4자리 이상의 수로 만들 수 있다.
- 모든 수를 문자열로 바꾸고 4개를 이어붙인 문자열의 앞에서 4자리까지만 가지고 내림차순으로 정렬한다. numbers.sort(key = lambda x: (str(x) * 4)[:4], reverse=True)
- 정렬한 수를 하나씩 불러와 for i in numbers
- 문자열로 바꿔 정답 문자열에 붙인다. answer += str(i)
- 모든 숫자가 0일 때를 생각하여 정답을 정수형으로 바꾸고 해당 정수를 다시 문자열로 바꿔 저장한다. answer = str(int(answer))
반응형
3. 소스코드
def solution(numbers):
answer = ''
numbers.sort(key=lambda x: (str(x) * 4)[:4], reverse=True)
for i in numbers:
answer += str(i)
answer = str(int(answer))
return answer
728x90
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] 전력망을 둘로 나누기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.15 |
---|---|
[프로그래머스] 기지국 설치 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.13 |
[프로그래머스] 소수 찾기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.11 |
[프로그래머스] 다리를 지나는 트럭 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.09 |
[프로그래머스] 택배상자 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.05 |
[프로그래머스] 단속카메라 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.03 |
[프로그래머스] 2개 이하로 다른 비트 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.01 |
[프로그래머스] 대충 만든 자판 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.29 |