728x90
반응형
SW Expert Academy에서 학습용으로 문제를 가져왔습니다. 문제가 될 시 수정, 삭제하겠습니다.
https://swexpertacademy.com/main/main.do
문제 :
보통의 정렬은 오름차순이나 내림차순으로 이루어지지만, 이번에는 특별한 정렬을 하려고 한다.
N개의 정수가 주어지면 가장 큰 수, 가장 작은 수, 2번째 큰 수, 2번째 작은 수 식으로 큰 수와 작은 수를 번갈아 정렬하는 방법이다.
예를 들어 1부터 10까지 10개의 숫자가 주어지면 다음과 같이 정렬한다.
10 1 9 2 8 3 7 4 6 5
주어진 숫자에 대해 특별한 정렬을 한 결과를 10개까지 출력하시오
[입력]
첫 줄에 테스트 케이스 개수 T가 주어진다. 1<=T<=50
다음 줄에 정수의 개수 N이 주어지고 다음 줄에 N개의 정수 ai가 주어진다. 10<=N<=100, 1<=ai<=100
[출력]
각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 특별히 정렬된 숫자를 10개까지 출력한다.
input
3
10
1 2 3 4 5 6 7 8 9 10
10
67 39 16 49 60 28 8 85 89 11
20
3 69 21 46 43 60 62 97 64 30 17 88 18 98 71 75 59 36 9 26
output
#1 10 1 9 2 8 3 7 4 6 5
#2 89 8 85 11 67 16 60 28 49 39
#3 98 3 97 9 88 17 75 18 71 21
code
Test_case=int(input())
for t in range(1, Test_case+1):
N=int(input())
numbers=list(map(int,input().split()))
new_list=[]
while len(numbers)>0:
max_numbers=max(numbers)
numbers.remove(max_numbers)
new_list.append(max_numbers)
min_numbers=min(numbers)
numbers.remove(min_numbers)
new_list.append(min_numbers)
result = ' '.join(map(str,new_list[0:10]))
print("#{} {}".format(t,result))
이 문제의 풀이방식으로 max, min함수를 사용하였습니다. 가장 큰 숫자를 먼저 앞에 넣고 그다음 작은 숫자를 넣는 식으로 while 반복문을 사용해 특별한 정렬을 만들었습니다.
반응형
'Programming > SWEA' 카테고리의 다른 글
[SWEA 4861].[파이썬 S/W 문제해결 기본] 3일차 - 회문 (0) | 2021.08.03 |
---|---|
[SWEA 4864].[파이썬 S/W 문제해결 기본] 3일차 - 문자열 비교 (0) | 2021.08.02 |
[SWEA 4839].[파이썬 S/W 문제해결 기본] 2일차 - 이진탐색 (0) | 2021.08.02 |
[SWEA 4837].[파이썬 S/W 문제해결 기본] 2일차 - 부분집합의 합 (0) | 2021.08.01 |
[SWEA 4836].[파이썬 S/W 문제해결 기본] 2일차 - 색칠하기 (0) | 2021.08.01 |