백준 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 ==0
은 True
근데 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
이렇게 활용 가능하겠네
반응형