🦭
새로운 연산자(Feat. 바다코끼리🦭) - 파이썬(Python), 알고리즘
December 15, 2021
Part 1. 새로운 연산자(Feat. 바다코끼리🦭)
-
백준 10951번
문제 보고 입력의 끝을 어떻게 알 수 있지? 하고 멘붕. -
문제 클릭 전
EOF
라는 힌트를 봄EOF
stands forEnd Of File
. This is the point in the program where the user cannot read the data anymore.참조: https://www.delftstack.com/howto/python/python-end-of-file/
EOF
는 더 이상 데이터를 읽은 수 없는 파일의 끝이라는 의미이다.
-
사용자 입력을 문제에 맞게 출력 해주다가
EOF
만나면 종료시켜주면 되는 문제다. -
풀이1
import sys test_cases = sys.stdin.readlines() # EOF를 받기 전까지 사용자 입력을 받는다(한 줄씩 리스트 형태로 담아줌) for case in test_cases: a, b = map(int, case.split()) print(a+b)
-
풀이2
while True: try: a, b = map(int, input().split()) print(a+b) except EOFError: break
- 처음에 풀 때 아무 생각 없이 위와 같이 풀어 제출했는데, EOFError라는 결과를 받게 되었다. 거기서 try ~ except 구문으로 해결해보면 어떨까 에서 착안함.
-
풀이3 - Walrus Operator 사용 (Python 3.8 이상)
import sys # := 연산자를 이용하면 조건문에서 변수에 값이 할당 된다! while case := sys.stdin.readline(): a, b = map(int, case.split()) print(a+b)
-
뽀나스
- Python에서 사용자 입력으로 EOF는 어떻게 입력 할 수 있을까?
참조: https://wikidocs.net/20464
- *nix(유닉스,리눅스 계열): Ctrl-D - Windows: Ctrl-Z + Return
- Python에서 사용자 입력으로 EOF는 어떻게 입력 할 수 있을까?