https://www.acmicpc.net/problem/2751
1) 입력값: 테스트 케이스 T, 정수 T개
2) 출력값: 정수 T개의 오름차순 출력
3) 제약조건:
- 1 <= T <= 1,000,000
- 0 <= 정수 <= 1,000,000
- 중복 X
4) 예외케이스: 없음
[a, b, c, d, e]
Index 0 부터 5 까지
* x > y 일 경우, x 와 y 를 swap한다.
Index 0 부터 4 까지
* x > y 일 경우, x 와 y 를 swap한다.
...
Index 0 부터 1 까지
* x > y 일 경우, x 와 y 를 swap한다.
def ascending_number():
n = int(input("Please enter the number of values: "))
array = []
while len(array) < n:
value = int(input(f"Insert value ({len(array)+1}/{n}): "))
if value in array:
print("This value is already provided.")
else:
array.append(value)
for i in range(len(array)):
for j in range(len(array) - i - 1):
if array[j] > array[j + 1]:
temp = array[j]
array[j] = array[j + 1]
array[j + 1] = temp
for i in array:
print(i)
ascending_number()
기본적인 정렬의 한 종류인 버블정렬인데 처음에는 for j in range(len(array) - i - 1):
의 range
를 정하는게 살짝 헷갈렸다.
Python에서는 굳이 정렬을 직접 구현하지 않아도 set
를 활용해서 sorted()
메소드를 사용하면 되는 것을 배웠다.
def ascending_number():
n = int(input("Please enter the number of values: "))
num_provided = set()
while len(num_provided) < n:
value = int(input(f"Insert value ({len(num_provided)+1}/{n}): "))
if value in num_provided:
print("This value is already provided.")
else:
num_provided.add(value)
for i in sorted(num_provided):
print(i)
ascending_number()