반응형
코드 작성
import sys
input = sys.stdin.readline
n = int(input())
k = [0]*10001
for _ in range(n):
k[int(input())] += 1
for i in range(1,10000):
if k[i] != 0:
for _ in range(k[i]):
print(i)
코드 풀이
#0.
이제까지 풀었던 것 중 계속 잊어버리고 공부하고, 잊어버리고 공부하고를 반복했던 문제이다.
문제를 틀리면 정답 코드를 보고 다시 글로 적어본다. 다음날 다시 반복하는데 실패하면 그 다음날 또 반복한다. 그렇게 12일이나 걸렸다.
#1. 메모리 초과
코드 정렬문제는 간단하게 나타낼 수 있는데 아래 같이 작성할 경우 이 문제의 경우 메모리 초과가 나온다.
import sys
input = sys.stdin.readline
n = int(input())
k = []
for i in range(n):
k.append(int(input()))
k.sort()
for i in k:
print(i)
#2.
k라는 리스트에 0의 값으로 10001개의 요소를 만든다.
그리고 for문을 이용하여 입력값을 k리스트의 요소안에 넣고 그 값을 1로 입력한다.
ex) k[3930] = 1
#3.
다시 for문을 1부터 10000까지 돌려서 k[?]에 0이 아닌 값에 대해서
다시한번 for문을 이용하여 출력
import sys
input = sys.stdin.readline
n = int(input())
k = [0]*10001 #k=0을 인덱스 0 포함 10001개로 채움, k[0]=0, k[1]=0, k[2]=0 ...
for _ in range(n):
k[int(input())] += 1 # k[n] = k[n] +1
for i in range(10001):
if k[i] != 0:
for _ in range(k[i]): #중복일 경우 한번 더 표현하기 위해서 작성
print(i)
#예를들어 k[10]이 1이라면
#k[10]에 해당하는 값 모두 다시 for문
반응형
'코딩 > Python' 카테고리의 다른 글
[Python] 백준 11656 접미사 배열 (0) | 2022.11.19 |
---|---|
[Python] 백준 9020 골드바흐의 추측 (0) | 2022.11.19 |
[Python] 백준 1874 스택 수열 (0) | 2022.11.19 |
[Python] 백준 1676 팩토리얼 0의 개수 (0) | 2022.11.18 |
[Python] 과제 안 내신 분..? (0) | 2022.11.18 |