[정렬] 백준 2750번: 수 정렬하기
사용 언어: python 3.7.4
❓ Problem
문제 설명
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
🚩 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 KB | 116 ms | 136 B |
시간 복잡도 분석
파이썬 list의 sort 기본 시간 복잡도: O(NlogN)
for문이 2개 더 있으므로 2N이 추가되면 O(NlogN+2N)이다.
📕 피드백
1. 검색한 내용
- 파이썬 list의 sort 시간복잡도는 O(NlogN)이다.
- list에 원소를 추가하는 함수는
append()
로, list.append(v)
로 사용한다.
- list를 정렬하는 함수는
sort()
로, list.sort()
로 사용한다. 오름차순으로 정렬한다.
내림차순으로 정렬하고 싶으면, list.sort()
후, list.reverse()
를 사용한다.
- list의 원소를 하나씩 접근하고 싶으면
for i in list
를 사용한다.(i에는 원소가 들어있다.)
2. 실수
append()
로, list.append(v)
로 사용한다.sort()
로, list.sort()
로 사용한다. 오름차순으로 정렬한다.내림차순으로 정렬하고 싶으면,
list.sort()
후, list.reverse()
를 사용한다.for i in list
를 사용한다.(i에는 원소가 들어있다.)input()
을 int()
로 감싸야 문자열 타입으로 반환받지 않고 숫자로 반환받을 수 있다.
3. 발전 방향
특히 입력받는 부분을 더 공부해야겠다. -> 추가하기
다른 사람의 파이썬 코드도 분석이 더 필요하다.
4. 느낀점
여태껏 C++로 코딩 테스트 언어를 공부하다가, Python으로 처음 풀어본 문제이다.
아직 파이써닉하게 코드를 잘 짜지 못하는 것 같다.
Author And Source
이 문제에 관하여([정렬] 백준 2750번: 수 정렬하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sue1199842/백준-2750저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)