본문 바로가기

백준 write-up/정렬 & 그리디

[백준] 소트인사이드 : 1427번 - Python

728x90
반응형

 

https://www.acmicpc.net/problem/1427

 

1427번: 소트인사이드

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

www.acmicpc.net

 

 

 

 

문제를 풀면서 몰랐던 개념

 

 [Python] 숫자를 각 자리수의 list로 변환

-> map 함수를 사용하면 된다!

n = 12345
n_list = list(map(int, str(n)))

# 각 자리수를 문자열로 받아 하나하나씩 int형으로 변환해주어서 n_list에 넣는다.

 

 

 

문제의 접근 방법

 

- 각 자리수를 내림차순으로 정렬할 수 있도록 리스트로 변환하는 것이 포인트!

- 마지막에 출력할 때, 리스트의 원소들을 붙여서 한 줄에 표현해야 한다는 점을 주의!

 

 

내가 막혔던 부분

 

아이디어는 생각이 났지만, 숫자를 각 자리수의 리스트로 바꾸는 것에 대한 개념이 헷갈렸다.

 

 

 

문제 풀이 방법

 

숫자 n 입력받기 -> 각 자리수를 리스트로 변환해주기 -> 그 리스트를 내림차순으로 정렬 -> 출력 형식에 맞춰서 for문을 돌려서 실제 숫자처럼 출력해주기

 

 

 

소스코드

n = int(input())

n_list = list(map(int, str(n)))
n_list = sorted(n_list, reverse=True)

for i in range(len(n_list)):
    print(n_list[i], end='')
728x90
반응형