4843. 특별한 정렬
문제)
보통의 정렬은 오름차순이나 내림차순으로 이루어지지만, 이번에는 특별한 정렬을 하려고 한다.
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개까지 출력한다.
풀이)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
T = int(input())
for _ in range(T):
n = int(input())
li = list(map(int, input().split()))
for i in range(0, n): # 거품 정렬
for j in range(i + 1, n):
if li[i] > li[j]:
li[i], li[j] = li[j], li[i]
s = 0
e = n - 1
answer = []
while s < e:
answer.append(str(li[e]))
e -= 1
answer.append(str(li[s]))
s += 1
print(f"#{_ + 1} {' '.join(answer[:10])}")
|
cs |
문제 출처 : https://swexpertacademy.com/main/main.do
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
※ SW Expert 아카데미는 원칙적으로 문제를 무단 복제하는 것을 금지합니다.
학습용으로 문제를 가져왔으나, 문제가 될 시 수정 및 삭제하겠습니다.
'Develop > Python + SWEA' 카테고리의 다른 글
[SW Expert Academy] 2001. 파리퇴치 (0) | 2022.02.16 |
---|---|
[SW Expert Academy] 1210. Ladder1 (0) | 2022.02.16 |
[SW Expert Academy] 4839. 이진탐색 (0) | 2022.02.16 |
[SW Expert Academy] 4837. 부분집합의 합 (0) | 2022.02.16 |
[SW Expert Academy] 4836. 색칠하기 (0) | 2022.02.16 |