Algorithm/programers

[Lv.1] 정수 내림차순으로 배치하기

casylm 2022. 8. 15. 00:36

문제

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

 

제한조건

  • n은 1이상 8000000000 이하인 자연수입니다.

 

Link

https://school.programmers.co.kr/learn/courses/30/lessons/12933

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

code

def solution(n):
    answer = 0
    l = []

    while True:
    
    	# 종료 조건(n이 일의자리가 되면)
        if n < 10:
            l.append(n)
            break

        l.append(n % 10)
        n = n // 10
	
    # 내림차순 정렬
    l = sorted(l, reverse=True)
    
    # list의 원소를 문자열로 만든 후 정수로 변환
    answer = int(''.join(map(str, l)))
    
    return answer

 

1. map

- 함수의 원형 : map(function, iterable)

- 첫번째 매개변수로는 함수가 오고, 두번째 매개변수로는 반복 가능한(iterable) 자료형(list, tuple)이 온다.

- return 값은 map 객체로 이를 list, tuple로 형 변환하여야 한다.

- 함수의 동작 : 두번째 매개변수 자료형(list, tuple) 을 첫번째 매개변수(function)에 하나씩 넣는다.

 

2. join

- 함수의 원형 : ''.join(list) / '구분자'.join(list)

- 매개변수(list)를 문자열로 반환