[백준]10951.A+B - 4

박민하·2022년 5월 16일
0

python 문제

목록 보기
9/49
post-thumbnail

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
각 테스트 케이스마다 A+B를 출력한다.

1차 제출 #오답

A, B = map(int,input().split())
print(A+B)

테스트 케이스가 뭐지? 싶었는데 일단 제출해본 코드.
혹시나 했는데 역시나 틀렸고 바로 전단계 문제 10950.A+B - 3 부터 풀어봤다.

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
각 테스트 케이스마다 A+B를 출력한다.

a=int(input())
for i in range(a):
    A, B = map(int, input().split())
    print(A+B)

테스트 케이스는 A+B를 출력하기 위한 입력 횟수를 의미하는 모양이다.
즉, 이번 문제는

  1. 테스트 케이스가 몇 번이나 있는지 명시되어 있지 않다.

  2. 입력 횟수의 제한이 없으니 끝나는 조건도 없다.

  3. 입력이 끝나면 자동종료 되도록 작성해야 한다.

2차 제출 #오답

while type(a)==int and type(b)==int:
    try : 
        a, b = map(int, input().split())
        print(a+b)
    except:
        break

이게 아닌가보다☹️ #맞왜틀
다른 언어로는 어떻게 풀었나 구글링해보니 이건 EOF(End Of File)를 판단하는 문제라고 한다!

3차 제출 #정답

while True:
    try : 
        a, b = map(int, input().split())
        print(a+b)
    except:
        break

뭐야 별차이 없잖아☹️
이럴거면 2차 제출 코드도 맞다고 해줘...

☑️ EOF(End Of File)

파일 끝. 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타낸다.
방법1.예외처리로 판단

while True:
   try:
   실행할 코드
   except [EOFError]: #EOFError 생략 가능
       break

방법2.sys모듈 사용

import sys
for line in sys.stdin:
   a, b = map(int, line.split())
   print(a+b)

☑️ sys? stdin?

  • sys(system) 모듈 : 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어하기 위해 사용
  • stdin(standard input) : 파이썬 인터프리터가 표준 입력에 사용하는 파일 객체
  • 모든 대화식 입력에 사용된다(input() 호출을 포함).
  • input()보다 입력 속도가 훨씬 빠르다고 한다.
  • input()은 내장 함수이고, sys.stdin은 파일 객체라는 점이 다르다.
profile
backend developer 🐌

0개의 댓글