본문 바로가기
DEV/백준 알고리즘

백준 알고리즘 10950번, 10951번, 10952번(파이썬)

by 올커 2022. 9. 24.

 

 

백준 10950번_파이썬 알고리즘

Q. 백준 10950. A+B-3

두 정수 A, B를 입력받은 후, A+B를 출력하는 프로그램 작성
(1) 입력 : 첫째 줄에 테스트 케이스의 횟수 T가 입력된다. 각 테스트 케이스는 한 줄로 이루어져 있고, 각 줄에 A와 B가 공백을 사이에 두고 주어진다.(0 < A, B < 10)
(2) 출력 : 각 테스트 케이스의 결과 A+B를 출력한다.


A. 풀이

# Q 백준 10950. A+B-3
t = int(input())  # 테스트 케이스 개수 t를 입력받음

for _ in range(t):  # t 만큼 반복
    a,b = map(int,input().split())
    print(a+b)
    
    
# Q 백준 10950. A+B-3 - 결과/시간초과
while True:
    try:
        a, b = map(int, input().split())
        print(a+b)
    except:
        continue

※ 주의. 시간 초과 발생
위의 두 번째 식을 사용했을 때 시간초과가 발생한다.

 


백준 10951번_파이썬 알고리즘

Q. 백준 10951. A+B-4

두 정수 A, B를 입력받은 후, A+B를 출력하는 프로그램 작성
(1) 입력 : 입력은 여러 개의 테스트 케이스로 주어지며, A와 B가 공백을 사이에 두고 주어진다.(0 < A, B < 10)
(2) 출력 : 각 테스트 케이스의 결과 A+B를 출력한다.

 


A. 풀이

# Q 백준 10951. A+B-4    결과/런타임 에러
while True:
    a, b = map(int, input().split())
    print(a+b)
# Q 백준 10951. A+B-4    다른 답
while True:
    try:
        a, b = map(int, input().split())
        print(a+b)
    except:
        break     # 입력이 없을 때 루프 밖으로 나옴.

※ 주의. 런타임 에러 발생
while문을 반복할 때, 입력값이 없으면 계속 대기하게 된다.
백준 채점 프로그램의 성격상 추가 명령이 불가하기 때문에 입력이 없을 시에는 try, except문을 활용하여
반복문 루프를 빠져나올 수 있도록 해주거나, if, break를 통해 루프 밖으로 나올 수 있도록 해주어야 함

더보기

※ 런타임 에러 발생 원인
1. 배열에 할당된 크기를 넘어서 접근했을 때
2. 전역 배열의 크기가 메모리 제한을 초과할 때
3. 지역 배열의 크기가 스택 크기 제한을 넘어갈 때
4. 0으로 나눌 떄
5. 라이브러리에서 예외를 발생시켰을 때
6. 재귀 호출이 너무 깊어질 때
7. 이미 해제된 메모리를 또 참조할 때
8. 프로그램(main 함수)이 0이 아닌 수를 반환했을 때
9. C/C++에서 반환형이 void가 아닌 main이 아닌 함수에서 아무런 값을 반환하지 않았을 때


 

백준 10952번_파이썬 알고리즘

Q. 백준 10952. A+B-5

두 정수 A, B를 입력받은 후, A+B를 출력하는 프로그램 작성
(1) 입력 : 입력은 여러 개의 테스트 케이스로 주어지며, A와 B가 공백을 사이에 두고 주어진다.(0 < A, B < 10)
입력을 마칠 때에는 0 두개를 공백을 사이에 두고 입력받는다.
(2) 출력 : 각 테스트 케이스의 결과 A+B를 출력한다.

 


A. 풀이

# Q 백준 10952. A+B-5
while True:
    a, b = map(int, input().split())
    if (a != 0) | (b != 0):
        print(a+b)
    else:
        break

 


R. 리뷰

 - 백준 알고리즘 문제 중 입력을 받고 테스트 케이스를 출력할 때 시간초과, 런타임 에러 등이 나지 않도록 알고리즘을 계속 점검해야 한다. 에러가 발생하는지 꼭 유의해야 한다.

 

반응형

댓글