- 처음 구현한 소스에서는 맨 앞자리 수를 반복해서 등장시켰더니 1~6번 케이스가 틀림.
- 이를 전체 자리수를 반복해서 등장시키니 맞게 나온다. sort에서는 값이 같다면 반복시킨 횟수가 많은 걸 먼저(짧은 것을 먼저) 나타나게 함.
- 000000 같은 케이스 방지를 위해 int형 변환 후 다시 str형으로 변환.
def solution(numbers):
answer = ''
num = list(map(str, numbers))
temp = []
for i in num:
if len(i) <= 4:
temp.append([i * 3, len(i * 3) - len(i)])
temp.sort(key=lambda x:(x[0], -x[1]), reverse=True)
for t in temp:
answer += t[0][:(len(t[0]) - t[1])]
answer = str(int(answer))
return answer
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
'알고리즘[Python] > 프로그래머스' 카테고리의 다른 글
[ Lv 2 ] 프린터 (0) | 2021.06.23 |
---|---|
[ Lv 2 ] 행렬 테두리 회전하기 (0) | 2021.06.23 |
[ Lv 2 ] 뉴스 클러스터링 (0) | 2021.06.22 |
[ Lv 2 ] 게임 맵 최단거리 (0) | 2021.06.22 |
[ Lv 2 ] 소수 찾기 (0) | 2021.06.22 |