# 문제
# 풀이
## 첫번째 풀이
def solve():
N = input()
list = []
for i in range(len(N)):
list.append(N[i])
list.sort(reverse=True)
for i in list:
print(i,end="")
최대 10의자리수까지 들어오기 때문에 메모리나 시간을 딱히 신경쓸 필요가 없다. 문자열 인덱싱을 통해 각각의 문자열을 리스트에 저장시킨후 파이썬 정렬 라이브러리를 사용해서 정렬시킨다.
## 두번째 풀이
def solve2():
N = input()
for i in range(9,-1,-1):
for j in N:
if i == int(j):
print(i,end="")
각자리는 0~9까지의 숫자중 한개이고, 내림차순 정렬 즉, 큰 수부터 차례로 출력해야하니까, 9->1까지 순회한다. 문자열을 순회하면서 해당 target수를 만날때마다 출력하는 과정을 거치면 쉽게 해결할 수 있다.
# 마치며
'•알고리즘(Algorithm ) > 문제풀이' 카테고리의 다른 글
[백준-2747] 피보나치 수 파이썬, 재귀함수 시간초과 메모이제이션 방법사용 (0) | 2022.08.08 |
---|---|
[백준-10989] 수 정렬하기3 파이썬, 계수정렬 (0) | 2022.08.07 |
[백준-10814] 나이순 정렬 파이썬 (0) | 2022.08.07 |
[백준-4195] 친구 네트워크 파이썬, union-find풀이, 파이썬 set을 이용한 풀이 (0) | 2022.08.06 |
[백준-5397] 키로거 파이썬 (0) | 2022.08.05 |