백준 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. 리뷰
- 백준 알고리즘 문제 중 입력을 받고 테스트 케이스를 출력할 때 시간초과, 런타임 에러 등이 나지 않도록 알고리즘을 계속 점검해야 한다. 에러가 발생하는지 꼭 유의해야 한다.
'DEV > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 10871번(파이썬) (0) | 2022.09.26 |
---|---|
백준 알고리즘 1110번(파이썬) (0) | 2022.09.25 |
백준 알고리즘 2753번(파이썬) (0) | 2022.09.23 |
백준 알고리즘 11021번, 11022번(파이썬) (1) | 2022.09.22 |
백준 알고리즘 25304번(파이썬) (1) | 2022.09.21 |
댓글