티스토리 뷰
문제
2751번: 수 정렬하기 2
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
www.acmicpc.net
풀이
시간복잡도가 O(nlogn)인 정렬로 풀어야하는데 (merge sort)
파이썬 내장함수의 시간복잡도가 O(nlogn)이라고해서 그냥 내장함수를 썼더니 시간초과가 났다.
num = int(input())
arr = []
for i in range(num):
arr.append(int(input()))
arr = sorted(arr)
for i in range(num):
print(arr[i])
구글링 해보니 pypy3으로 바꾸고 제출하라해서 그렇게 했더니 맞았다
input대신 sys로 해보면 더 빨라질까 해서 다시 해보니 시간이 반정도로 줄었다
import sys
ipt = sys.stdin.readline
arr = []
for i in range(int(ipt())):
arr.append(int(ipt()))
arr = sorted(arr)
for i in arr:
print(i)
참고
https://wayhome25.github.io/python/2017/06/14/time-complexity/
파이썬 자료형 별 주요 연산자의 시간 복잡도 (Big-O) · 초보몽키의 개발공부로그
파이썬 자료형 별 주요 연산자의 시간 복잡도 (Big-O) 14 Jun 2017 | 들어가기 알고리즘 문제를 풀다 보면 시간복잡도를 생각해야 하는 경우가 종종 생긴다. 특히 codility는 문제마다 시간복잡도 기준이 있어서, 기준을 넘기지 못하면 문제를 풀어도 score가 50 이하로 나오는 경우가 많다. 찾아보니 파이썬 주요 함수, 메소드의 시간복잡도를 정리한 페이지가 있었다. (Complexity of Python Operations) 자주 사용하는
wayhome25.github.io
http://ejklike.github.io/2017/03/04/sorting-algorithms-with-python.html
Study Note - 파이썬으로 정렬 알고리즘 구현하기
탐색과 정렬 알고리즘은 서로 뗄레야 뗄 수 없는 사이다. 원하는 값을 찾을 때까지 값을 차례로 살펴보는 순차탐색(sequential search)은 데이터가 정렬되어 있지 않아도 사용할 수 있지만 $O(n)$이다. 데이터를 절반씩 버리면서 원하는 값을 찾아나가는 이진탐색(binary search)은 $O(\log n)$으로 시간복잡도가 낮지만 데이터가 순서에 맞게 정렬되어 있어야 한다는 제약이 있다. 따라서 효율적인 정렬 알고리즘이 필수다. 아래는 기본적
ejklike.github.io
파이썬 sorted와 .sort의 차이
https://www.codeit.kr/questions/186
python - sort 메소드와 sorted 함수의 차이 | 코드잇
코드잇은 국내 최고의 온라인 프로그래밍 강의 교육 기관입니다. 코드잇에서 여러분들의 가치를 더 높여보세요!
www.codeit.kr
- Total
- Today
- Yesterday
- 백준알고리즘
- 안드로이드 키해시
- 안드로이드
- 카카오 키해시
- 백준 1644
- 파이썬 최대공약수
- 코틀린 리스트뷰
- 카카오 기출
- 카카오톡으로 로그인 오류
- 시뮬레이터 키보드
- Kotlin
- kotlin fragment
- TextFormField keyboard
- 투포인터 알고리즘
- 코틀린 데이터바인딩
- 백준 2003
- 코틀린 뷰바인딩
- 코틀린 뷰페이저
- 소수 구하기 파이썬
- 전화번호목록 파이썬
- 안드로이드 카카오톡으로 로그인
- counting sort
- 데이터바인딩 뷰바인딩 차이
- 백준 1806
- 백준
- 프로그래머스
- 코틀린 바텀네비게이션
- 코틀린
- 투포인터 알고리즘 파이썬
- flutter simultor
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |