728x90
📚문제
📝풀이
# 10989 수 정렬하기 3
import sys
cnt_array = [0 for _ in range(10001)]
for _ in range(int(input())):
num = int(sys.stdin.readline().rstrip())
cnt_array[num] += 1
for i in range(len(cnt_array)):
if cnt_array[i] != 0:
print('{0}\n'.format(i)*cnt_array[i], end='')
개념이나 풀이법을 몰라서 어려운 문제도 있지만
이렇게 같은 코드로 메모리나 시간을 줄이는
방법도 어려운 것 같다...
알고리즘 문제에서
"모든 입력을 배열에 저장하면 메모리 초과가 된다" 고 한다
참고링크 출처 : https://www.acmicpc.net/board/view/26132
+ 위 코드는 구글링하여 발견한 코드인데
마지막 for문 부분의
print문 코드는 잘 이해가 가지 않고
(근데 저 코드로 제출해 봤는데 오히려 메모리 초과가 발생...🤣)
나중에 풀어도 내가 저렇게 풀 수 있을 것 같지 않아서
내 방식대로 바꿔봤다
for idx,k in enumerate(cnt_array):
if k !=0:
for _ in range(k):
print(idx)
내가 자주 사용하는 enumerate이기도 하고
이 편이 훨씬 직관적인것 같다!
📌최종 코드
# 10989 수 정렬하기 3
import sys
cnt_array = [0 for _ in range(10001)]
for _ in range(int(input())):
num = int(sys.stdin.readline().rstrip())
cnt_array[num] += 1
for idx,k in enumerate(cnt_array):
if k !=0:
for _ in range(k):
print(idx)
728x90
'Python(알고리즘,문제풀이) > BOJ(Bronze I)' 카테고리의 다른 글
백준 / 명령 프롬프트 / Python / 구현,문자열 (1) | 2024.01.24 |
---|---|
백준 / 2869번 / 달팽이는 올라가고 싶다 / Python / 수학 (1) | 2023.12.06 |