[백준] 10989 수 정렬하기 3

Jin Lee·2022년 5월 11일
0
post-thumbnail

문제 링크

https://www.acmicpc.net/problem/10989

문제 설명

  • counting sort 를 이용하는 문제

코드

import sys

n = int(input())
nums = [0] * 10001

for i in range(n):
    temp = int(sys.stdin.readline().rstrip())
    nums[temp] = nums[temp] + 1

for i in range(10001):
    while nums[i] > 0:
        print(i)
        nums[i] = nums[i] - 1

수정한 코드

import sys

n = int(input())
nums = [0] * 10001

for i in range(n):
    temp = int(sys.stdin.readline().rstrip())
    nums[temp] = nums[temp] + 1

for i in range(10001):
    for j in range(nums[i]):
        print(i)
  • 위 코드랑 비교해서 아래쪽에 while문을 for 문으로 바꾸어 처리 하여 연산 횟수를 감소시켰다.

더 알아 볼 것

  • int(sys.stdin.readline().rstrip()) 에서 .rstrip()을 빼도 똑같이 동작하는데 python 내부에서 캐스팅 되는 원리
profile
깃허브 : https://github.com/jinlee9270

0개의 댓글