알고리즘 백준 1427 소트인사이드(파이썬)

백준 소트인사이드 파이썬

백준 파이썬 소트인사이드

 

문제

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

입력

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

출력

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

 

코드

import sys

N = int(sys.stdin.readline())



#map 사용 안할시
#num = list(str(N)) # 213이 들어오면 ['2','1','3']이됨
# for k in range(len(num)):  # 리스트에 string으로 저장했으므로 int로 변환
#     num[k] = int(num[k])



#map 사용 시
num = list(map(int,(str(N))))# 리스트에 string으로 저장했으므로 int로 변환
num = sorted(num,reverse=True)  #내림차순정렬
num = list(map(str,num)) #안에 값이 int이므로 string으로 변환
strA = "".join(num) #리스트를 string형태로 변환
print(strA)

 

코드설명

1) 값을 받아서 리스트로 저장한다 -> 전에 문제에서는 for문으로 했는데 찾아보니 map을 사용하면 한줄로 된다고한다.

1-1) map은 map(함수,값)의 형태로 리스트나 튜플의 형태로 받아야 한다고 한다. 해당 원소들을 하나하나씩 함수로 집어넣는다고한다

 

2) num을 내림차순 정렬 (sorted reverse=True) 한 후 안에 값이 int임으로 String으로 변환한다.

 

3)리스트를 String으로 변환 후 출력하면 끝.

 

깃허브

https://github.com/developer-hyun/Algorithm-Study/tree/main

 

 

+ Recent posts