반응형
250x250
Notice
Recent Posts
Recent Comments
Link
DecordRay
[프로그래머스] Level2 : 가장 큰 수[Python] 본문
728x90
반응형
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42746
풀이 :
1. numbers에 있는 원소들을 str 형태로 변환해서 str_arr 리스트에 저장
2. 문자열 원소를 3번 반복해서 이어붙인 후 사전 순으로 내림차순 정렬
why? - [34, 30, 3]을 정렬할 경우 [343434, 333, 303030]이 되므로 [34, 3, 30] 순으로 원하는 결과가 나오기 때문
(int형 크기 비교가 아닌 문자열 사전순 배열이기 때문)
3. 정렬된 문자열 원소 이어붙이기
4. answer[0] = '0'일 경우 answer = '0'으로 치환
why? - 입력으로 [0,0,0]이 들어올경우 answer = '000'이 되므로
코드 :
def solution(numbers):
str_arr = [str(i) for i in numbers] # numbers에 있는 원소들을 str형태로 변환해서 str_arr리스트에 저장
str_arr.sort(key=lambda x: (x*3),reverse=True) # 문자열 원소를 3번 이어붙인 후 사전 순으로 내림차순 정렬
answer = ''.join(str_arr) # 정렬된 원소들 이어붙이기
if answer[0] == '0': # 입력으로 [0,0,0] 이 들어올경우 answer = '000'이 되므로
answer = '0'
return answer
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Level1 : 크기가 작은 부분 문자열[Python] (0) | 2023.02.02 |
---|---|
[프로그래머스] Level1 : 삼총사[Python] (0) | 2023.02.02 |
[프로그래머스] Level2 : 오픈채팅방[Python] (0) | 2023.01.23 |
[프로그래머스] Level2 : 주식가격[Python] (0) | 2023.01.23 |
[프로그래머스] Level2 : 피로도[Python] (0) | 2023.01.20 |
Comments