반응형
파이썬으로 백준풀기 :: 10989번 수 정렬하기 3
https://www.acmicpc.net/problem/10989
코드
1 2 3 4 5 6 7 | import sys c = [0]*10000 n = int(sys.stdin.readline()) for _ in range(n) : c[int(sys.stdin.readline())-1] += 1 for i in range(10000) : [print(i + 1) for _ in range(c[i])] | cs |
이 문제는 아주아주 예민한 문제이다. 메모리가 상당히 적은 부분만 할당되기 때문에 코드를 딱 한 글자만 고쳐도 통과가 되기도, 안 되기도 한다.
애초에 할당되는 메모리가 적기때문에 input을 처음에 다 받아서 저장하면 무조건 메모리 초과가 뜬다. input을 따로 저장하지 않고 해결해야 한다.
이 문제에 몇 가지 팁이 있다면,
1. input() 대신 sys.stdin.readline() 으로 받을 것
2. for문에서 range() 안에 sys.stdin.readline() 을 넣지말고 꼭 n = int(sys.stdin.readline()) 으로 따로 뺄 것(실제 이거 하나로 성패가 갈림)
3. for문에서도 i가 필요 없는 부분은 _ 로 처리할 것 등이 있다.
반응형
'코딩테스트 연습 > 백준' 카테고리의 다른 글
[백준] 11650번 : 좌표 정렬하기 in python 파이썬 (0) | 2019.11.15 |
---|---|
[백준] 2108번 : 통계학 in python 파이썬 (0) | 2019.11.12 |
[백준] 2751번 : 수 정렬하기 2 in python 파이썬 :: heap sort (0) | 2019.11.09 |
[백준] 2751번 : 수 정렬하기 2 in python 파이썬 :: merge sort (1) | 2019.11.04 |
[백준] 2750번 수 정렬하기 in python 파이썬 (0) | 2019.11.02 |