홍우진의 개발 일기장
[백준] 10989번: 수 정렬하기 3 / 파이썬 본문
728x90
반응형
문제 링크
https://www.acmicpc.net/problem/10989
풀이 코드
import sys
input = sys.stdin.readline #입력받는 시간을 단축시켜준다.
n = int(input())
arr = [0] * 10001 #미리 배열을 만들어준다.
for _ in range(n):
arr[int(input())] += 1 #받은 숫자를 인덱스번호로 하는 자리를 += 1 해준다.
for i in range(len(arr)):
if arr[i] != 0: #숫자가 0이 아니면(숫자가 들어온 적 있다면)
for _ in range(arr[i]):
print(i) #들어온 갯수만큼 그 숫자를 출력한다.
코드 해석
실행 시간을 줄이는것이 관건이다.
우선 sys의 sys.stdin.readline을 사용하여 input 시간을 단축한다.
배열을 미리 만들어두고
숫자 x가 들어오면 arr[x] 의 숫자가 하나씩 올라가는 방식이다.
만약 3이 들어오면
0,0,1,0,0,0,....
이렇게 카운팅이 올라가는 방식이다.
그 후 for문을 사용하여 0이 아닌 자리의 인덱스 번호를 출력하면 된다.
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 28702번: FizzBuzz / 파이썬 (0) | 2024.12.04 |
---|---|
[백준] 11050번: 이항 계수 1 / 파이썬 (2) | 2024.12.03 |
[백준] 15829번: Hashing / 파이썬 (0) | 2024.12.01 |
[백준] 2231번: 분해합 / 파이썬 (0) | 2024.11.30 |
[백준] 30802번: 웰컴 키트 / 파이썬 (1) | 2024.11.30 |
Comments