| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Class
- Git
- WHERE절
- 알고리즘
- 가상환경
- 정보처리기사실기
- 마스킹
- resnet50
- 프로그래머스
- WIL
- WebSocket
- 정보처리기사
- channels
- 파이썬
- 2주차
- 채팅
- sql
- re-id
- 장고
- 1주차
- js
- REDIS
- github
- 백준
- 개발일지
- vscode
- poetry
- 미니프로젝트
- 프로젝트
- Commpot
Archives
- Today
- Total
개발일기
백준 알고리즘 시간초과 방지하는 법 본문
<python>
1. input 대신 sys.stdin.readline 사용하기
import sys
input = sys.stdin.readline
이렇게 하면 그냥 input을 쓸 때보다 빠르게 입출력을 받을 수 있다.
단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()을 추가로 해 주는 것이 좋다.
사용예시)
import sys
input = sys.stdin.readline
n = map(int, input().rstrip())
n, m = map(int, input().split())
2. Pypy로 제출하기
Pypy3은 Python 3와 같은 문법을 가지면서 일반적으로 더 빠르게 동작한다.
연산량이 많은 문제에서 Python을 사용하고자 한다면 Pypy로 제출하는 것을 권장한다.
그 외 C++ 과 Java의 경우)
- C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다.
- Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다.
'오류 및 알고리즘정리본' 카테고리의 다른 글
| 17. 백준 알고리즘 고양이, 백발백중, 별찍기1 (0) | 2023.05.18 |
|---|---|
| #16 프로그래머스 문자열내마음대로정렬하기 & 문자열정렬2 & 중복된문자제거(dict.fromkeys) (2) | 2023.05.05 |
| #15 백준 통계학 & 영단어 암기는 괴로워 (0) | 2023.05.04 |
| #14 백준 코딩은 체육과목이다 & 블랙잭 (0) | 2023.05.02 |
| #13 프로그래머스 나머지가 1이 되는 수 찾기 & 없는 숫자 더하기 (0) | 2023.05.01 |