inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Làm đi! Kiểm tra mã hóa thuật toán với Python

[Bài tập luyện tập tổng phần] Tìm tổng phần 2 (Baekjun 11660)

Python sys.stdin.readline() 사용

552

sm9911057725

1 câu hỏi đã được viết

0

안녕하세요.

구간합구하기 (백준 11660) 문제를 풀고 있는데요.

코드는 똑같은데, 제일 상단에 아래 코드 입력 여부에 따라 시간초과/성공이 갈립니다.

import sys

input = sys.stdin.readline

 

이게 실패와 성공을 가를만큼 중요한 역할을 하나요?

위 코드를 넣으면 왜 빨라지는지 설명해주실 수 있으실까요?

python 코딩-테스트 알고리즘

Câu trả lời 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

네, input = sys.stdin.readline 코드는 Python에서 입력을 받는 속도를 향상시켜주는 역할을 합니다.
기본적으로 Python의 input() 함수는 사용자의 입력을 받으면서, 공백문자(예: 줄바꿈)를 제거하는 등의 추가적인 작업을 수행하기 때문에 상대적으로 느릴 수 있습니다.
반면 sys.stdin.readline은 줄바꿈 문자를 포함한 한 줄의 문자열을 빠르게 입력받기 때문에, 많은 양의 데이터를 빠르게 입력받아야 하는 경우 (예: 알고리즘 문제에서의 대량의 데이터 입력)에 훨씬 효율적입니다.

다만, sys.stdin.readline을 사용할 때에는 문자열의 마지막에 줄바꿈 문자가 포함되기 때문에, 이를 제거하기 위해 종종 strip()을 사용해야 할 수 있습니다.

따라서 알고리즘 문제를 풀 때 입출력의 양이 많고 빠른 입출력이 요구되는 경우, input() 대신 sys.stdin.readline을 사용하여 시간 초과를 방지할 수 있습니다.

문제 푸시느라 수고 많으십니다. 질문이 더 있으시면 언제든 질문해주세요.

26,27강 진행 간 노션, html 프롬프트 파일 불일치

0

13

3

비쥬얼 스튜디오로 해도 되나요?

0

15

2

강의 자료

0

15

1

27:15 break 출력

0

13

1

kaggle notebook에 service key 설정이 누락된 것 같습니다

1

21

2

수업 노트가 안 보입니다.

0

22

1

Python formatter 설치

0

23

1

55강 파이썬에만있는 연산자들

0

30

2

55강의 파이썬에서만 있는 연산자들

0

22

2

주말에 실행할 경우 update_economic_data_in_background에 로직 변경 필요성

1

31

1

naver 글자 수집 오류 건

0

24

1

쥬피터 노트북이 실행이 안됩니다.

0

28

1

뒤로가기 버튼 같은 것이 있나요?

0

28

1

코딩살구클럽 가입 문의

0

56

2

코딩 살구 클럽 컴파일 에러

0

31

2

추천 문제

0

32

2

Replit 강의 자료가 안나와요

0

20

1

코딩살구클럽 승인

0

42

2

강의 연장 문의

0

32

1

병합정렬이 홀수개의 숫자에 적용될 경우?

0

124

0

다익스트라와 벨만-포드 차이에서

0

334

2

나머지 합 구하기 핵심 아이디어 문의

0

232

1

17298 오큰수 구하기 질문있습니다.

1

696

2

디버깅에 관한 질문

1

657

1