알고리즘(python)/정렬
[Python]정렬 백준 1427
개발일기
2020. 1. 1. 00:51
반응형
문제
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 |
반응형