백준 10952번: 반복문 python

kimminjunnn·2024년 12월 15일

알고리즘

목록 보기
1/311

10952번

문제의 키 포인트 : 0 0 입력 될때 까지 A,B 받아서 A + B 출력하기.

  • while True: 그리고 break

while True는 항상 참(True)이므로 끝없이 반복되는 루프를 생성합니다.
종료 조건을 명확히 설계하지 않으면 프로그램이 무한히 실행되므로, 반드시 break와 같은 종료 로직을 포함해야 합니다.

답 :

    a, b = map(int, input().split())
    if (a ==0 and b == 0):
        break
    else:
        print(a+b)

다음 문제는 0 0 입력시 종료가 아닌 그냥 아무것도 입력하지 않고 엔터를 눌렀을 때 종료하게 하는 문제

EOF 에 대해 알아야 한다.

EOF란?
EOF(End of File)는 파일이나 입력 스트림의 끝을 나타냅니다. Python에서 표준 입력(stdin)으로 데이터를 처리할 때 EOF가 발생하면 더 이상 입력을 받을 수 없다는 것을 의미합니다.

EOF가 발생하는 상황
터미널에서 Ctrl+D(Linux/Mac) 또는 Ctrl+Z(Windows)를 입력하면 EOF가 발생합니다.
파일에서 입력을 읽을 때, 파일 끝에 도달하면 EOF가 발생합니다.
백준과 같은 온라인 저지에서는 모든 입력이 처리되었을 때 EOF가 발생합니다.

EOF를 처리하는 이유
Python에서 input() 함수는 입력이 없거나 EOF가 발생하면 EOFError를 발생시킵니다.
이 코드에서는 예외 처리(try-except)를 사용하여 EOF 발생 시 루프를 종료하도록 설계되었습니다.

while True:
    try:
        A, B= map(int,input().split())
        print(A+B)
    except:
        break
  • 중요한 포인트
    예외 처리 (try-except):
    EOFError가 발생하면 except 블록이 실행되고 루프가 종료됩니다.
    while True와 EOF 처리:
    while True로 무한 루프를 만들고, EOF나 입력 종료 시 자연스럽게 루프를 빠져나갑니다
profile
Frontend Engineers

0개의 댓글