백준 10989번
최종 제출 코드(오답)
import sys
input = sys.stdin.readline
num = int(input())
num_list = [0]*num
for i in range(num):
num_list[i]=int(input())
num_list.sort()
for i in range(num):
print(num_list[i])
- 빈 배열에 원소값을
append()하는 방법말고, 0을 넣어놓고 업데이트 하는 방법 사용
- 메모리 초과
다른 사람이 작성한 코드
import sys
n = int(sys.stdin.readline())
b = [0] * 10001
for i in range(n):
b[int(sys.stdin.readline())] += 1
for i in range(10001):
if b[i] != 0:
for j in range(b[i]):
print(i)
- 입력값의 범위가
10,000까지임 & 배열 인덱스를 활용
- 정렬에
sort()를 사용하지 않음( => 코드 실행 시간이 줄어든 요인)
- 중복된 값은 원소의 값을
1씩 증가시켜 입력 데이터 중에 해당 원소값이 몇 번 입력됐는지 알 수 있음
- 조건문도 적절히 활용하면
O(n)을 줄이기 가능
출처