반응형

   문제

   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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기