관련 문제
https://school.programmers.co.kr/learn/courses/30/lessons/42746
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
def solution(numbers):
numbers_str = list(map(str, numbers))
numbers_str.sort(key = lambda x : x * 3, reverse = True)
return str(int(''.join(numbers_str)))
해결 포인트
numbers_str.sort(key = lambda x : x * 3, reverse = True)
핵심 문제 : 문자열의 비교 방식 이해
- python 문자열의 경우 앞에 글자의 아스키코드에 따라서 크기가 정해짐.
- 만약 앞에 모든 것이 같다면 문자열의 길이에 따라 크기가 정해짐.
- 문제의 범위가 1000 까지이기에 3을 곱하면 순위를 구할수 있음.
- [50, 5] 일 때
- "50" > "5" -> 505가 만들어지지만
- "55" > "5050" -> 550이 만들어진다.
'코딩테스트 > 프로그래머스 level2' 카테고리의 다른 글
[프로그래머스] 다음 큰 숫자 (0) | 2022.09.08 |
---|---|
[프로그래머스] 올바른 괄호 (0) | 2022.09.08 |
[프로그래머스] 최솟값 만들기 (0) | 2022.09.08 |
[프로그래머스] n^2 배열 자르기 (0) | 2022.09.08 |
[프로그래머스]두 큐 합 같게 만들기 (0) | 2022.09.01 |