Skip to content

Commit 94aec9f

Browse files
zaqquumMingguriguri
authored andcommitted
[PGS]#42746. 가장 큰수/lv2/1h(힌트)
https://www.programmers.co.kr/learn/courses/30/lessons/42746
1 parent bfb3459 commit 94aec9f

File tree

1 file changed

+9
-30
lines changed

1 file changed

+9
-30
lines changed

Hongjoo/lv2/가장큰수.py

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,14 @@
11
"""
2-
실패
3-
1. 가장 큰 자리수 비교 -> 자리수 가장 작은 수
4-
0. graph
5-
idx : numbers
6-
value : [0,0,0,-1] # ex 62 => [6,2,False,False]
7-
# 조건 2.
8-
3,30,300 비교 -> 3 > 30> 300 우선순위
9-
#반례
10-
1) 110 vs 1 > 1+110
11-
2) [12, 1213] -> 1213+12
2+
https://www.programmers.co.kr/learn/courses/30/lessons/42746
123
"""
134

145
def solution(numbers):
15-
answer = ''
16-
#0. graph 만들기
17-
graph = list()
18-
for n in numbers:
19-
p = 4-len(str(n))
20-
if p > 0 :
21-
douple_n = str(n)*p
22-
else :
23-
douple_n = str(n)
24-
graph.append([douple_n[:4], p ]) # 자리수 맞춰주기(4자리)
25-
# print(graph)
26-
#2.정렬 : 높은 자리수의 값이 큰 순서 대로
27-
graph.sort(key=lambda x : x[0] , reverse = True)
28-
# print(graph)
29-
#3. 합치기
30-
answer=""
31-
for i in range(len(graph)):
32-
num = graph[i][0] ; position = 4-graph[i][1]
33-
answer += str(int(num[:position]))# "000","0" 경우 0으로 처리
34-
6+
# 1. number의 같은 길이에 대해서 크기 비교하기
7+
numbers_str = [str(num) for num in numbers ] # 문자열로 변환
8+
numbers = sorted(numbers_str ,key = lambda x: x*3 , reverse = True )
9+
#2. 리스트 원소를 1개의 문자열로 출력 형식 충족하기
10+
# answer = "".join(numbers)
11+
# print(answer , type(answer))
12+
answer = str(int("".join(numbers)))
13+
# print(answer , type(answer))
3514
return answer

0 commit comments

Comments
 (0)