카테고리 없음

파이썬으로 정수 입력 받기

백준 문제를 풀 때는 다양한 형태의 정수 입력을 받아야 할 때가 많다.

 

이 때, 파이썬의 특징을 이용하면 정수 입력들을 편하게 파싱할 수 있다.

 

한 줄의 정수 하나

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()))]

역시 한줄로 처리할 수 있다.