본문 바로가기
코딩테스트/[python]백준

[python] 백준 1427 : 소트인사이드

by o_oo 2022. 4. 7.

서론

머리속에 간단한 풀이가 떠오르는데 파이썬에 친숙하지 않아서 검색하며 문제를 풀었다.


문제

 

1427번: 소트인사이드

첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

문제

배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.

입력

첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.


나의 풀이

print(''.join(list(reversed(sorted(list(input()))))))

여러 풀이가 있겠지만 문제가 어렵지 않고 파이써닉한 코드로 작성하고 싶어 구글링하며 문제를 풀었다.

 

일단 풀이를 설명하면 입력값을 정렬(sorted)하고 뒤집어서(reversed) 출력하는 방식이다.

 

쉬워보이는 설명이지만 내가 파이썬에 친숙하지 않아서 처음엔 생각되로 잘 안되었다.

 

* reversed

reversed는 특이하게 reversed라는 객체로 반환한다(list에서 제공하는 객체가 아님). 그래서 단순히 출력하려하면 출력이 되지않는다. 그래서 이를 list()로 바꾸어주어 출력해줘야한다.

 

비슷하게 사용되는 reverse가 있는데 이는 list에서 제공해준다는 차이점이 있으며, 역순으로 변환한걸 결과로 제공하지 않는다. 즉, 뒤집으려는 list 자체를 뒤집어버린다.

 

* join

join은 내가 사용해보지 않았던 함수이지만 유용해보인다. 앞으로 자주 사용해야겠다.

 

리스트의 원소들을 연결시켜준다.


+ 피드백과 새로운 풀이 방법은 언제든지 환영입니다!

댓글