백준 10952번

2025. 1. 23. 11:45백준

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

입력의 마지막에는 0 두 개가 들어온다.

내가 푼 문제

import sys
A,B = 11, 11
while True:
    A,B = map(int,sys.stdin.readline().split())
    if A ==0 and B == 0:
        break
    print(A+B)

이번에 알게 된 것은 파이썬에서는 숫자 0이 아니면 다 True로 인식한다는 것.
이게 왜 문제냐?

처음에 if A and B ==0 이랬음
근데 안돼... 왜?
먼저 B ==0 을 봄 B가 0일 때 B ==0True 근데 A and true 는 False임...
왜냐? A =0 이니깐 (파이썬에서는 숫자 0은 False ㅋㅋㅋ)
결론 논리 연결을 쓸려면 조건을 따로 따로 쓰고 합쳐야 한다
ex) if A ==0 and B == 0:

다른 사람이 푼 풀이

import sys

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

나는 계속 받다가 끝나는 문자로 0을 받는 다고 생각했는데 이 분은 그냥 한 줄씩 입력하다가 자연스럽게 끝난다고 생각하셨나보다
여기서 배워야 할건 0이 아닐 때 print() 한다는 생각
내꺼에다가는 if A + B =0: break 이렇게 활용 가능하겠네

반응형

'백준' 카테고리의 다른 글

백준 10807번  (0) 2025.01.23
백준 11021번  (0) 2025.01.23
백준 2349번  (0) 2025.01.23
백준 2438번  (0) 2025.01.23
백준 1552번  (0) 2025.01.23