Skip to content

Instantly share code, notes, and snippets.

@DongguemYoo
Created June 21, 2020 07:02
Show Gist options
  • Save DongguemYoo/e486fb65e82a97f321715b51b00d9603 to your computer and use it in GitHub Desktop.
Save DongguemYoo/e486fb65e82a97f321715b51b00d9603 to your computer and use it in GitHub Desktop.
[프로그래머스] 가장큰수.python
#준니 쉬워보여서 얕봣는데 간단하지않넹;; 1~6런타임에러 지리고...
#생각 일단 인자의 최대값은 1000 이므로 4자리수까지만 생각하면된다.
#각 자리수에 맞는 숫자로 일단 나누고
#가장 max치를 찾아서 적용시켜준다.
#모든 적용이 끝났다면 결과를 리턴
def solution(numbers):
answer = ''
type1 =[]
type2 = []
type3 = []
type4 = []
for i in range(0,len(numbers)):
if len(str(numbers[i]) ) == 1:
type1.append(numbers[i])
elif len(str(numbers[i])) == 2:
type2.append(numbers[i])
elif len(str(numbers[i])
) == 3:
type3.append(numbers[i])
else:
type4.append(numbers[i])
type1.sort()
type1.reverse()
type2.sort()
type2.reverse()
type3.sort()
type3.reverse()
totallen = len(type1)+len(type2)+len(type3)
while totallen != 0:
max = 0
for i in range(0, len(type1)):
if type1[i] > max:
max = int(type1[i])
for i in range(0, len(type2)):
for j in range(0, len(str(type2[i]))):
if int(str(type2[i])[j]) > max:
max = type2[i]
for i in range(0, len(type3)):
for j in range(0, len(str(type3[i]))):
if int(type3[i][j]) > max:
max = type3[i]
answer += str(max)
for i in range(0, len(type1)):
if max == type1[i]:
type1.remove(max)
totallen -=1
break
for i in range(0, len(type2)):
if max == type2[i]:
type2.remove(max)
totallen -= 1
break
for i in range(0, len(type3)):
if max == type3[i]:
type3.remove(max)
totallen -= 1
break
if len(type4)>0:
for i in range(0,len(type4)):
answer += str(type4[i])
return answer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment