정구리의 우주정복

4843. [파이썬 S/W 문제해결 기본] 2일차 - 특별한 정렬 본문

ALGORITHM/SOLVE

4843. [파이썬 S/W 문제해결 기본] 2일차 - 특별한 정렬

Jungry_ 2020. 5. 13. 13:27
반응형

#파이썬으로 만듬

#질문 댓글로

 

 

선택정렬을 사용한 소스코드

testCase = int(input())

for i in range(testCase):
    length = int(input())
    arr = list(map(int,input().split()))
    index = 0
    for j in range(length):
        change = 0
        index = 0
        if len(arr[j:length])%2 ==0 : #최대값을 찾아야하는 경우
            maxx = arr[j]
            for k in range(j,length): #최대값 구하기
                if arr[k] >= maxx:
                    maxx = arr[k]
                    index = k
        elif len(arr[j:length])%2 != 0: #최소값
            mini = arr[j]
            for k in range(j,length):#최소값 구하기
                if arr[k] <= mini:
                    mini = arr[k]
                    index = k
        change = arr[j]
        arr[j] = arr[index]
        arr[index] = change
    print('#'+str(i+1),end=' ')
    for j in range(10):
        print(arr[j],end=' ')
    print()

 

선택정렬을 사용하지 않았지만 세상깰껌한 코드 (도움을 준 양갱맨에게 감사)

 testCase = int(input())

for i in range(testCase):
    n = int(input())
    nums = sorted(list(map(int,input().split())))
    res = list()
    j,k = -1,0
    for l in range(len(nums)):
        if l%2 ==0:
            res.append(nums[j])
            j-=1
        else:
            res.append(nums[k])
            k+=1
    print('#'+str(i+1)+' ',end='')
    for l in range(10):
        print(res[l],end=' ')
    print('')

 

문제에서 10개 출력하라고 했는데 그거 못보고 계속 틀려서 우울했었다 

문제를 잘 읽자 

반응형
Comments