-
[알고리즘] 프로그래머스 - 가장 큰 수알고리즘 2022. 8. 3. 15:19728x90
문제
접근
1. numbers의 인자들을 문자열 리스트로 변경을 한다
2. 문자열의 리스트들을 *3 을 해줘서 각 자리의 앞자리수 즉, [0]의 값을 아스키 코드로 비교를 하여 최고자리수를 기반으로 내림차순 정렬을 한다
풀이
def solution(numbers): return str(int(''.join(sorted(list(map(str, numbers)), key=lambda x: x*3, reverse=True)))) # x*3의 의미는 만약에 6, 10, 2 -> 666, 101010, 222 # str(int()) 를 쓴 이유는 '0000' -> '0' 으로 변경을 위함 # 문자열 비교연산의 경우엔 첫번째 인덱스인 666[0]인 6과 101010[0]인 1과 222[0]인 2를 ascii숫자로 바꿔서 비교합니다. # #물론 같으면, 다음 인덱스도 비교합니다. 비교한 결과 [6, 2, 10]의 순으로 정렬됩니다
'알고리즘' 카테고리의 다른 글
[알고리즘] 백준 1926 그림 (0) 2022.08.06 [알고리즘] 프로그래머스 - H-Index (0) 2022.08.03 [알고리즘] 백준 11652 - 카드 (0) 2022.07.28 [알고리즘] 백준 11004 - k번째 수 (0) 2022.07.28 [알고리즘] 백준 10825 - 국영수 (0) 2022.07.28