상세 컨텐츠

본문 제목

[coding_test] 가장 큰 수

coding

by golduny_zoo 2021. 4. 21. 17:53

본문

728x90

처음 생각은 숫자를 전체적으로 나열해서 큰수를 찾아낼까 생각을 했지만..

for 문으로 10000개 이하의 원소를 돌리는 것을 나타내기가 너무 길고 험한 길.. 

다시 생각을 바꿔 큰 수만 나오면 되니 

숫자의 규칙을 살펴봤다. 

맨 앞의 숫자가 큰 수가 앞으로 가는 순서가 가장 큰수가 나올 수 있는 조건이란 것을 깨닫고, 

10자리 100의 자리를 확인하기 위해 10과 100으로 나눠 나온 값을 비교해보자고 생각했고, 

0의 경우 어떻게 처리를 할 것인지 생각을 하여 if 문을 돌리는.. 와중 또.. 머리가 깨지는 것같았다. 

이번에는 3 과 30, 300의 처리에서 문제가 생겼다 같은 3 으로 나왔을 경우? 다시 0을 붙여서 비교함?

이건 코드로 짤 수 있다고 생각은 하지만.. 내 능력이 힘들다..

원점.. 다시 생각을 했을 때 앞의 자리로만 비교하는 것은 문자로 만들면 가능하지 않나 생각을 한 후 

문자로 맵핑하여 다 정렬 시킴 가능하다..

하지만 그럴경우 3보다 30이 앞서 나가 330이 큰 수로 나오지 않고 303으로 나오는 것을 보고

멘붕... 

3자리 수로 만들기 위해서 문자열*3을 이용해서 쉽게 풀 수 있는 사람이 있었다..

아직 부족한듯........

 

sort는 key 파라미터가 존재한다. 

lambda는 for문 혹은 if문 코드를 짧게 만들어 줄수 있다. 

# 내가 쓴 코드 
def solution(numbers):
    
    numbers = list(map(str, numbers)) 
    numbers.sort(reverse = True) # 파라미터에 key = lambda x: x*3으로 정답이 갈림

    return str(int(''.join(numbers)))
    

 

'coding' 카테고리의 다른 글

[Error]tensorflow 설치 시 killed  (0) 2021.04.30
효율성 있는 파이썬 코드 만들기  (0) 2021.04.22
[coding_test] K번째수  (0) 2021.04.20
코딩 테스트  (0) 2021.04.02
가상환경  (0) 2021.03.08

관련글 더보기