[Python] 프로그래머스 - 가장 큰 수
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/42746
# 조건을 제대로 읽지 않아 엄청 어렵게 생각했던 문제이다. 처음에 정렬하는 방법은 제대로 생각했다.
(가장 큰 숫자의 자리수에 맞춰 나머지 숫자들의 자리수를 맞춘다음 정렬하는 것)
# 여기서 numbers의 원소가 0이상 1000이하라고 되어있는데, 이걸 읽지 않아서 가장 일일이 가장
큰 숫자의 자리수를 len함수로 구하고 나머지 수들의 자리수 역시 다 구해서 자리수를 맞춰주었다.
# numbers의 원소가 1000이하이니까 그냥 어떤 수가 들어오든 *4을 해주면 되는 것이었다.
(나는 *4로 했지만, 나중에 생각해보니 *3만 해도 풀린다.)
def solution(numbers):
answer = ''
tmp = []
for i, num in enumerate(numbers):
# tmp에 [num을 4번 곱한 것, index] append해줌
tmp.append([str(num) * 4, i])
# tmp를 tmp[0]기준으로 내림차순 정렬
tmp.sort(reverse = True)
# answer에 tmp의 i(인덱스)순으로 numbers[i]를 더해줌
for i in tmp:
answer += str(numbers[i[1]])
# numbers의 원소가 모두 0일때는 "0" return, 아니면 answer을 return
return "0" if answer < "1" else answer
(프로그래머스 level: 2)
728x90
반응형
'문제풀이 > Programmers' 카테고리의 다른 글
[Python] 프로그래머스 - 섬 연결하기 (0) | 2021.06.01 |
---|---|
[Python] 프로그래머스 - 도둑질 (0) | 2021.05.24 |
[Python] 프로그래머스 - n진수 게임 (0) | 2021.05.22 |
[Python] 프로그래머스 - 파일명 정렬 (0) | 2021.05.22 |
[Python] 프로그래머스 - 압축 (0) | 2021.05.21 |
TAGS.