백준 문제를 풀 때는 다양한 형태의 정수 입력을 받아야 할 때가 많다.
이 때, 파이썬의 특징을 이용하면 정수 입력들을 편하게 파싱할 수 있다.
한 줄의 정수 하나
n = int(input())
한 줄의 특정 개수의 정수
a,b,c,d = map(int, input().split())
먼저 input() 받은 줄을 빈칸을 기준으로 split() 한 뒤에,
각각의 요소들을 map 함수를 통해 int로 바꾸어 준다.
입력이 '1 2 3 4' 라면
a=1, b=2, c=3, d=4 가 된다.
한 줄의 정수 리스트
nums = [int(x) for x in input().split()]
한 줄에 공백으로 나누어진 ?개의 정수를 리스트로 만들어준다.
입력이 '1 2 3 4 5' 라면
[1, 2, 3, 4, 5] 가 nums에 들어간다.
N개 줄의 정수 리스트
n = int(input())
nums = [int(input()) for _ in range(n)]
첫번째 줄에 n이 주어지면,
한 줄의 정수 하나 입력 받기를 n번 반복한다.
입력이
5
10
20
30
40
50
이라면 nums 에는 [10, 20, 30, 40, 50] 이 들어간다.
nums = [int(input()) for _ in range(int(input()))]
응용하면 한 줄로 처리할 수도 있다.
N줄의 2차원 정수 리스트
n = int(input())
field = [[int(x) for x in input().split()] for i in range(n)]
한 줄의 정수 리스트 입력받기를 n줄에 대해서 반복한다.
입력이
2
1 2 3 4
5 6 7 8
이라면, field = [[1, 2, 3, 4], [5, 6, 7, 8]] 가 된다.
field = [[int(x) for x in input().split()] for i in range(int(input()))]
역시 한줄로 처리할 수 있다.