반응형
문제
https://www.acmicpc.net/problem/1427
문자열은 파이썬 굉장히 간단히 처리할수있다.
정렬은 퀵소트로 구현했다.
이전과 부호만 바꿔주면 간단히 내림차순 정렬을 구현할수있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | n=input() num_list=list(map(int,list(n))) #문자열을 받아서 한글자씩 배열에 저장후 int형으로 형변환환 def quicksort(start,end,num_list): if start>=end: return num_list pivot=num_list[start] #첫번째값을 피벗값으로 left=start+1 right=end while left<=right: while num_list[left]>=pivot and left<end: #끝을 넘지않게 왼쪽값이 피벗값보다 작으면(내림차순) left+=1 while num_list[right]<=pivot and right>start: right-=1 if left<right: num_list[left],num_list[right]=num_list[right],num_list[left] left+=1 right-=1 else: #마지막에 바꿔준다. num_list[start],num_list[right]=num_list[right],num_list[start] quicksort(start,right,num_list) quicksort(right+1,end,num_list) quicksort(0,len(num_list)-1,num_list) for i in num_list: print(i,end="") | cs |
반응형
'알고리즘(python) > 정렬' 카테고리의 다른 글
[Python]정렬 백준 11651 (0) | 2020.01.02 |
---|---|
[Python]정렬 백준 11650 (0) | 2020.01.01 |
[Python]정렬 백준 2108 (0) | 2019.12.27 |
[Python]정렬 백준 10989 (0) | 2019.12.25 |
[Python]정렬 백준 2751 (0) | 2019.12.24 |
최근댓글