티스토리 뷰
백준 문제 특성상 난이도를 포함해서 정답 비율이 20%대로 현저히 낮다면
시간제한 혹은 메모리 제한에 걸릴 확률이 높다. 이 문제도 그런 부류다.
문제
10989번: 수 정렬하기 3
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
풀이
원래라면 리스트 안에 받은 배열을 넣고, 정렬하고 하나씩 빼는 간단한 방법을 썼을 것이다.
그런데 이렇게 하면 메모리가 초과된다.
그래서 10,000보다 작거나 같은 자연수라는 힌트를 갖고, 10001개의 0으로 이루어진 배열을 만든다.
10001개인 이유는 리스트의 인덱스로 결과물을 출력해야 하기 때문. 이후에 조작해주는 것 보다 차라리 10001개로 만드는 것이 편리하다.
1은 2개 이런식.
import sys
n = int(sys.stdin.readline())
lists = [0] * 10001
for i in range(n):
lists[int(sys.stdin.readline())] += 1
# 0으로 된 리스트의 인덱스를 입력 받고 해당 숫자가 존재하면 1을 더하는 방식.
#2이면 두 번 출력하도록 아래에서 진행
for i in range(10001):
if lists[i] != 0: # 우선 0이면 해당 숫자가 없는 것 이므로
for j in range(lists[i]): # 있으면 해당 숫자만큼
print(i) # 출력
반응형
'Basic_Studies > 알고리즘 문제풀이' 카테고리의 다른 글
[파이썬] 백준 - 9613: GCD 합 (0) | 2021.02.04 |
---|---|
[파이썬] 백준 - 2609: 최대공약수와 최소공배수 (0) | 2021.02.03 |
[파이썬] 백준 - 11721: 열 개씩 끊어 출력하기 (0) | 2021.02.02 |
[파이썬] 백준 - 10820: 문자열 분석 (0) | 2021.01.30 |
[파이썬] 백준 - 11399: ATM (0) | 2021.01.29 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 리액트 컴포넌트
- 리액트 라우터
- 백준 10989 파이썬
- 리액트 스크롤
- vscode venv
- 움직이는 글래스모피즘
- 리액트 파라미터 넘기기
- nuxt 공식문서
- 카페음료테스트
- 리액트
- dvd 효과
- 자바스크립트
- 파이썬 정렬
- NextJS
- bs4 크롤링
- css 글래스모피즘
- 글래스모피즘 구현
- Til
- 10989 파이썬
- next.js 리다이렉트
- nextjs 스크롤
- react router
- 파이썬 flask
- nextjs 파라미터 넘기기
- getserversideprops redirect
- css marquee
- 파이썬 크롤링
- 글래스모피즘 애니메이션 구현
- 화이팅
- nuxt 공식문서 한글
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함