파이썬/코딩테스트

[Do-it 코딩 테스트] 000. 수 정렬하기(2750)

거북이07 2023. 10. 26. 15:15

문제

https://www.acmicpc.net/problem/2750

 

2750번: 수 정렬하기

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net

 


코드

내가 작성한 코드

num = int(input())
result = []
for i in range(num):
    num2 = int(input().strip())
    result.append(num2)
    result.sort()

for j in result:
    print(j)

해석

num = int(input())

위 입력예제를 보면 N개의 수를 입력하기 전에 몇개의 수를 받을지 입력하는 부분이 있어 input() 함수 사용하여 값을 받아주었고 input()은 기본적으로 문자열로  들어와 int()로 input()을 감싸 정수로 형변환을 진행해주었다.

result = []

그 다음 반복문을 돌리면서 N개의 수를 입력받으면 append를 시켜줄  result라는 빈 배열을 만들어주고

for i in range(num):
    num2 = int(input().strip())
    result.append(num2)
    result.sort()

반복문을 사용하여 처음 input()로 입력받은 개수만큼 반복을 진행해주었다.

 

위에 입력 예제를 보면 '5 6 7 8' 이런 식으로 한 번에 입력받는 게 아닌 각 수를 따로따로 입력받는 형식이라 반복문 안에 input() 함수를 사용하여 반복 횟수만큼 입력받을 수 있게 코드를 작성하였고 입력받은 값을 num2라는 변수에 담아 미리 만들어놨던 result 리스트에 append를 해주었다.

 

그리고 문제에서 '오름차순으로 정렬' 이라는 문구가 있어 sort()를 사용해 리스트를 정렬해주었다.

for j in result:
    print(j)

그 후 출력 예제를 보면 print가 한줄 한줄 따로 출력되기 때문에 반복문을 이용하여 result를 j에 담아 result 리스트의 길이 만큼 출력해주었다.