728x90
난이도 : Lv. 2
풀이일 : 2412161
https://school.programmers.co.kr/learn/courses/30/lessons/42746
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
아이디어
- 숫자들을 문자로 변환 후 정렬한다.
- 30, 3 숫자들의 정렬을 위해 x * 5 값을 기준으로 정렬한다.
- 마지막에 붙인 문자열을 숫자로 변환했다가 다시 문자로 변환하여 반환한다.
풀이 코드
def solution(numbers):
answer = list(map(str, numbers))
answer.sort(key=lambda x : x * 5, reverse=True)
return str(int(''.join(map(str, answer))))
- answer : numbers 리스트에 있는 숫자들을 문자로 변환하여 저장
- answer.sort() : answer에 담긴 문자열들을 *5 한 값 기준으로 내림차순 정렬
- 정렬된 문자열을 붙여 숫자로 변환 후 다시 문자열로 변환하여 반환
채점 화면
반례
입력 | 출력 |
[0, 0, 0, 0] | "0" |
느낀점
- 처음에는 * 2를 기준으로 했는데 틀려서 숫자를 확 올렸다. 긴 숫자들의 비교 때문에 2 곱해서는 해결 안되는 테스트 케이스 들이 있는 것으로 추정된다.
- 숫자를 올리고도 틀린 문제가 하나 있어서 고민하다가 반래를 찾았다. 숫자를 문자열로 반환해야 하니까 리턴 시 문자열을 숫자로 한 번 변환했다가 다시 문자로 변환해서 리턴했더니 해결되었다.
'알고리즘 > Lv. 2' 카테고리의 다른 글
프로그래머스 87946 피로도 파이썬 풀이 (0) | 2024.12.23 |
---|---|
프로그래머스 42626 더 맵게 파이썬 풀이 (1) | 2024.12.20 |
프로그래머스 12978 배달 파이썬 풀이 (0) | 2024.12.16 |
프로그래머스 43165 타겟 넘버 자바 풀이 (0) | 2024.11.11 |
프로그래머스 43165 타겟 넘버 파이썬 풀이 (0) | 2024.11.11 |