- 처음 구현한 소스에서는 맨 앞자리 수를 반복해서 등장시켰더니 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

+ Recent posts