Home 백준 알고리즘(BOJ) 10952번 파이썬 풀이
Post
Cancel

백준 알고리즘(BOJ) 10952번 파이썬 풀이

문제 설명

이번 문제는 전체적인 알고리즘 자체는 어렵지 않지만 입력받을 때 사용하는 함수가 일반적으로 사용하는 input()함수가 아닌 sys모듈의 sys.stdin.readline() 함수를 사용한다는것에 유의합니다.

풀이

완성된 코드는 다음과 같습니다.

1
2
3
4
5
6
7
import sys
while True:
    a, b = sys.stdin.readline().split()
    a = int(a); b = int(b)
    if a + b == 0:
        break
    print(a + b)

이 문제는 작업이 시작된 후 1초 내로 종료되어야한다는 조건이 붙어서 input()함수 대신 sys.stdin.readline()함수를 사용합니다.
왜냐하면 sys.stdin.readline()함수는 input()함수보다 입력받고 처리하는데 걸리는 시간이 훨씬 빠르기 때문입니다.
만약 일반적으로 사용하는 input()함수를 사용할 경우 제한시간 초과로 인해 실패합니다.

변수 absys.stdin.readline() 함수를 이용해 값을 입력받고, 공백을 기준으로 문자열을 잘라 저장합니다.

1
a, b = sys.stdin.readline().split()

이제 int()함수를 이용해 변수 a에는 문자 a의 값을 정수형으로 형변환한 값을, 변수 b에는 문자 b의 값을 정수형으로 형변환한 값을 넣고 저장합니다.

1
a = int(a); b = int(b)

이후 if 제어문을 이용해 a + b의 연산결과가 0일 경우 제어문을 중단하고 a + b의 연산결과를 출력합니다.

1
2
3
if a + b == 0:
        break
    print(a + b)

실행 결과

input값이 (1, 1), (2, 3), (3, 4), (9, 8), (5, 2), (0, 0)일 경우 입출력결과는 다음과 같습니다.

1
2
3
4
5
2
5
7
17
7

0, 0 즉 if문의 종료 조건이 발생했기 때문에 0이 출력되는 대신 스크립트가 종료됩니다.

This post is licensed under CC BY 4.0 by the author.