코딩테스트 연습 - 정수 내림차순으로 배치하기 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n | return |
118372 | 873211 |
풀이
아이디어: 숫자를 문자열로 바꾸어 리스트에 넣어준다음에, sort() 메소드를 사용.
# 풀이1
def solution(n):
answer = [x for x in str(n)]
answer.sort(reverse=True)
answer = ''.join(answer)
return int(answer)
숫자를 문자열로 바꿔주고 한개씩 리스트에 넣어준 다음, sort()로 정렬해준다.
sort()는 기본이 오름차순이며, parameter인 reverse를 True로 해주면, 내림차순으로 사용할 수 있다.
# 풀이2
def solution(n):
array = sorted([i for i in str(n)], key =int, reverse=True)
answer = int(''.join(array))
return answer
이번엔 sorted() 함수를 사용.
sort(), sorted()
이전의 reverse(), reversed()와 마찬가지로, sort()는 리스트의 메소드이고, sorted()는 내장함수로 이터러블한 객체에 모두 사용할 수 있다.
또한 sort()와 sorted()에는 key라는 parameter도 존재하는데, 이는 어떤 기준으로 정렬할 것인지 기준이 되는 함수를 넣어주는 자리이다. 예를 들어 key=len 을 넣어주면 요소들의 길이를 기준으로 정렬하며, key=int를 숫자를 기준으로 정렬하는 것이다. 특정한 조건으로 설정하고 싶다면 lambda로 함수를 만들어서 사용하면 된다.
join()
join() 은 문자열 메소드로 문자열들을 결합하기 위해 사용된다.
"a".join(B) : 주어진 문자열(a)를 기준으로 하여, 주어진 이터레이터(B) 의 모든 항목을 결합한다.
-> 결과는 당연히 문자열
ex) a에 ""를 넣으면 요소들을 연달아서 붙일 수 있고, " "를 사용하면 한칸씩 띄우며 붙일 수 있다.
'문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Lv.1] 콜라츠 추측 (Python) (0) | 2024.07.09 |
---|---|
[프로그래머스 Lv.1] 두 정수 사이의 합 (Python) (0) | 2024.07.09 |
[프로그래머스 Lv.1] 자연수 뒤집어 배열로 만들기(Python) (0) | 2024.07.08 |
[프로그래머스 Lv.1] x만큼 간격이 있는 n개의 숫자 (Python) (0) | 2024.07.08 |
[프로그래머스 Lv.1] 약수의 합 (Python) (0) | 2024.07.08 |