[정렬] 백준 2750번: 수 정렬하기

사용 언어: python 3.7.4

❓ Problem

문제 설명

문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

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

출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

백준 2750번: 수 정렬하기

🚩 Solution

1. 접근법

파이썬 list에는 리스트를 정렬해주는 list.sort() 메소드가 내장되어 있다.
sort()를 이용해 문제를 해결한다.

2. 코드

### Input
n = int(input())
list1 = []

for i in range(n):
    list1.append(int(input())) # 원소 추가

### Algorithm
list1.sort() # 정렬


### Output
for i in list1:
    print(i)

3. 결과

채점 결과

correct

메모리시간코드길이
28776 KB116 ms136 B

시간 복잡도 분석

파이썬 list의 sort 기본 시간 복잡도: O(NlogN)
for문이 2개 더 있으므로 2N이 추가되면 O(NlogN+2N)이다.


📕 피드백

1. 검색한 내용

  1. 파이썬 list의 sort 시간복잡도는 O(NlogN)이다.
  2. list에 원소를 추가하는 함수는 append()로, list.append(v)로 사용한다.
  3. list를 정렬하는 함수는 sort()로, list.sort()로 사용한다. 오름차순으로 정렬한다.
    내림차순으로 정렬하고 싶으면, list.sort() 후, list.reverse()를 사용한다.
  4. list의 원소를 하나씩 접근하고 싶으면 for i in list를 사용한다.(i에는 원소가 들어있다.)

2. 실수

input()int()로 감싸야 문자열 타입으로 반환받지 않고 숫자로 반환받을 수 있다.

3. 발전 방향

특히 입력받는 부분을 더 공부해야겠다. -> 추가하기
다른 사람의 파이썬 코드도 분석이 더 필요하다.

4. 느낀점

여태껏 C++로 코딩 테스트 언어를 공부하다가, Python으로 처음 풀어본 문제이다.
아직 파이써닉하게 코드를 잘 짜지 못하는 것 같다.

좋은 웹페이지 즐겨찾기