👓 [문제]
주어진 N 길이의 숫자열을 오름차순으로 정렬하여 출력하라.
# [input]
10
5
1 4 7 8 0
...
# [output]
0 1 4 7 8
...
import sys
sys.stdin = open("input.txt")
T = int(input())
# [테스트 케이스 T 만큼 for문 돌리자]
for tc in range(1, T + 1):
# [숫자열의 길이를 N에 집어넣자]
N = int(input())
# [숫자열을 list로 바꾸어 numbers에 집어넣자]
numbers = list(map(int, input().split()))
# [범위의 끝자리를 지정하자]
# N이 5일때, range의 범위는 4, 3, 2, 1!
for i in range(N-1, 0, -1):
# i가 4일때 j : 0, 1, 2, 3
# i가 3일때 j : 0, 1, 2
# ...
# range(i)인 이유 : 만약 range(i+1)이 된다면 j+1은 5로서 존재하지 않는 인덱스 인데,
# j가 4일 때 존재하지 않는 5번째 인덱스와 비교하려 들 것이고
# 결과적으로 인덱스 에러가 난다!
for j in range(0,i):
# [j]와 [j]보다 뒤에 있는 값인 [j+1]을 비교해준다.
# ==>> 인덱스 0과 인덱스 1을 비교
if numbers[j] > numbers[j+1]:
numbers[j], numbers[j+1] = numbers[j+1], numbers[j]
result = ' '.join(map(str, numbers))
print('#{} {}'.format(tc, result))
# [다른 풀이]
import sys
sys.stdin = open("input.txt")
T = int(input())
for tc in range(1, T + 1):
N = int(input()) # N = 5
N_list = list(map(int, input().split())) # N_list = [1, 4, 7, 8, 0]
for i in range(N - 1): # range(4) : 0, 1, 2, 3
for j in range(N - i - 1): # range(4)니까,
# i = 0 # j = range(4), 0, 1, 2, 3
# i = 1 # j = range(3), 0, 1, 2
# i = 2 # j = range(2), 0, 1
# i = 3 # j = range(1), 0
if N_list[j] > N_list[j + 1]:
N_list[j], N_list[j + 1] = N_list[j + 1], N_list[j]
print("#{} {}".format(tc, ' '.join([str(i) for i in N_list])))
🍦 [복습]
# 1. 210218
리스트의 대괄호를 벗겨내고 싶을 때는 join을 사용해주면 되는데,
' '.join() 을 사용하려면 str값으로 mapping을 해줘야 한다!
' '.join(map(str, numbers)
# 2. 210225
복습 완료
'# 3. APS > SWEA' 카테고리의 다른 글
SWEA # Python_D1_2072_홀수만 더하기 ✅ (0) | 2021.02.14 |
---|---|
SWEA # Python_D3_11457_gravity (0) | 2021.02.13 |
SWEA # Python_D2_1959_두 개의 숫자열 ✅ (0) | 2021.02.12 |
SWEA # Python_D1_2071_평균값 구하기 ✅ (0) | 2021.02.12 |
SWEA # Python_D1_11485_여러가지input ✅ (0) | 2021.02.11 |