반응형
휴... 이 문제랑 씨름을 했다. 계속해서 메모리초과가 떠서
스트레스받아 돌아버릴 지경에 이르러
구글링....을 했다,,,,ㅠㅠ
문제 설명
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
나의 오답 코드들
import sys
n = int(sys.stdin.readline())
nums=[]
for _ in range(n):
num=int(sys.stdin.readline())
nums.append(num)
nums.sort()
for j in nums:
print(j)
n = int(input())
nums = []
for _ in range(n):
num = int(input())
nums.append(num)
nums.sort()
for j in nums:
print(j)
반응형
정답 코드
import sys
n = int(sys.stdin.readline()) # 입력값 개수를 입력받음
num_list = [0] * 10001 # 수의 개수를 세기 위한 리스트 생성
# 입력값을 읽어들이고 해당 수의 개수를 num_list에 저장
for _ in range(n):
num = int(sys.stdin.readline())
num_list[num] += 1
# num_list를 순회하며 수의 개수에 따라 해당 수를 출력
for i in range(10001):
if num_list[i] != 0: # 개수가 0이 아닌 경우에만 해당 수를 출력
for j in range(num_list[i]):
print(i)
이유
계수정렬 알고리즘 문제였다. 그냥 냅다 덤볐으니ㅠㅠ 알고리즘을 순서대로 이론을 익힌 후에 문제를 풀어야겠다.
괜히 삽질만 주구장창했다... 그래도 재밌는 경험이었다!ㅎㅎ 모르다가 알게되는 온천수,, 석유가 터지는 기분 ㅋㅋㅋㅋ
반응형
'Algorithm' 카테고리의 다른 글
[알고리즘/파이썬] 자료구조 - 투 포인터(Two pointers) | 백준 2018번: 수들의 합 5 (0) | 2023.07.22 |
---|---|
[알고리즘/파이썬] 자료구조 - 슬라이딩 윈도우(Sliding window) | 백준 12891번: DNA 비밀번호 (0) | 2023.07.18 |
[알고리즘/파이썬] 자료구조 - 구간 합(Sum of Segment), 부분 합(Partial Sum) | 백준 11659번: 구간 합 구하기 4 (0) | 2023.07.16 |
[알고리즘/파이썬] 자료구조 - 배열과 리스트 | 11720번: 숫자의 합, 1546번: 평균 (0) | 2023.07.14 |
[알고리즘/파이썬] 시간복잡도 | 백준 2750번: 수 정렬하기 (0) | 2023.07.13 |