뚝딱햄 탈출기

[Python] VSCode에서 txt파일 통한 입력값 받기 본문

Algorithm & Data structure/알고리즘 문제 풀이

[Python] VSCode에서 txt파일 통한 입력값 받기

hyrmzz1 2023. 10. 22. 23:18

백준 문제를 풀 때 입력값을 직접 받아야 하기 때문에 입력을 받기 위한 코드를 작성하고, 코드 실행 후 터미널에서 입력값을 일일이 쳐야 하는데 오타 가능성도 있고, 여러 값을 넣어야 할 때는 여간 귀찮은 일이 아니다.

 

그럴 땐 .txt 파일을 별도로 만들어 예제 입력 값을 복붙해 저장해 두고, 실행할. py 파일에서 sys 라이브러리를 import 해준 후 아래 코드를 넣어 입력 값을 불러올 수 있다 !

import sys
sys.stdin = open('input.txt')	# '예제 입력을 복붙해둔 txt 파일명.txt'

 

이 때, .py 파일과 .txt 파일은 같은 디렉터리에 위치해야 한다.

 


이 방법은 간결하기도 하지만, readline()을 불러오기 좋다고 생각한다.

readline()으로 입력을 받도록 작성된 코드에서 import sys 바로 아래 라인에 sys.stdin = open('input.txt') 을 추가하기만 하면 이미 작성한 코드를 수정하지 않고 입력값을 편하게 받아올 수 있다!

 

readline()은 input() 보다 훨씬 빠른 속도로 입력값을 받는다. 따라서 입력의 개수가 많은 경우 input()으로 입력값을 받으면 시간 초과가 발생할 수 있으므로  나는 문제를 풀 때 readline()을 사용해 입력을 받는다.

 

input()은 줄 바꿈을 제거한 뒤 값을 반환하지만, readline()은 입력값에 개행이 포함된 상태로 값을 반환하기 때문에 (줄 바꿈을 제거하는 과정을 거치지 않아 input()보다 더 빠르기도 하다.) 개행을 제거하기 위한 .rstrip()을 붙여 작성해 준다.

 

.rstrip()을 붙이지 않으면 입력값에 개행을 추가한 값을 반환하기 때문에 위와 같이 출력된다. (readline() 개행 + print() 개행)

 

.rstrip()은 문자열 오른쪽의 공백을 제거해 주므로 입력값을 입력받은 후 줄 바꿈이 제거되어 위와 같이 출력된다. (print()로 인한 개행만 발생!)

Comments