두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
각 테스트 케이스마다 A+B를 출력한다.
매우 간단한 문제.
for _ in range(int(input())):
A, B = map(int, input().split())
print(A + B)
sys.stdin.readline 사용 시 아래와 같다.
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
a, b = map(int, read().split())
print(a + b)
자바스크립트만으로 실무, 문제풀이 연습을 했던 나는 입력값을 넣어 테스트 돌리는 개념이 없었어서 이런 종류의 입력값 다루는 수행에 맞닥뜨렸을 때 생소했다.
이 문제의 입력 예시가 이렇다.
변수 t에 첫번째 라인인 5가 할당되고, 이후 나머지 라인들이 a, b에 공백으로 split()되고, map()을 통해 할당되는 것.
아래와 같이 정리해가면서 외우고 있다.
# 입력이 공백으로 나뉜 한 줄짜리 입력값일 때, 빌트인input()
a = [int(x) for x in input().split()]
## input() 대신 --> map 과 sys.stdin.readline으로 정수의 map()의 list()화
import sys
input = sys.stdin.readline
a = list(map(int, input().split()))
# -----------
# 다시 말하면, 입력을 공백으로 구분된 한 줄로 받을 때:
lst = input().split() # 이걸 너무 늦게 알았다 하..
lst = list(map(int, input().split()))
# 여러 라인 입력받아야 할 경우:
a = int(input())
b = int(input())
c = int(input())
## 여러 라인 입력받아야 할 경우 - 문제 풀이 상 총 몇 줄의 입력값인지 고정적이며 그걸 리스트로 보관할 때:
arr = []
for _ in range(9): # 9줄 고정일 때
num = int(input())
arr.append(num)
arr = list(int(input()) for _ in range(9))
# 여러 라인 입력받아야 할 경우 - 입력값의 맨 앞에 테스트케이스의 갯수 주어질 때:
c = int(input())
for _ in range(c):
arr = list(map(int, input().split()))
#
c = int(input())
arr = list(map(int, input().split()) for _ in range(c))
#
# sys.stdin.readline 끝에 \n은 rstrip()으로 없앨 수 있다(값 스트링화 됨)
# 17608
# stack = list(input().strip() for _ in range(c)) # wrong
stack = [int(input()) for _ in range(c)]
# 입력받은 막대기의 높이를 리스트에 저장하는 부분에서 strip() 함수를 사용하였습니다. 하지만 이 경우에는 리스트에 저장된 각각의 문자열의 양쪽 공백을 제거하는 것이 아니라, 문자열의 맨 앞과 맨 뒤의 공백만 제거하게 됩니다. 이러한 경우에는 입력값이 예상과 다르게 처리될 가능성이 있으므로 strip() 함수를 사용하지 않는 것이 좋습니다.
# print - 공백 간격두고 한 줄로 프린트
print(" ".join(map(str, stack)))