a = int(input())
👉 input()
에 입력되는 데이터를 모두 문자열로 입력받는다. int()
로 감싸주어 변환시켜주고 float()
, str()
도 사용 가능하다.
a,b = map(int, input().split())
# 2 3
👉 위의 주석처럼 수들을 공백을 사용해서 입력받는 문제가 많을 것이다. 그럴 때 map()
과 split()
사용해서 a와 b를 입력받으면 된다. 3개 이상일 경우 a,b,c, =
처럼 변수만 늘려주면 된다. int
대신 float
와 str
로도 가능하다.
a = list(map(int, input().split()))
# 2 5 3 2 6 -> [2, 5, 3, 2, 6]
👉 list()
를 쓰게 되면 주석의 형태처럼 입력받은 수를 리스트로 변환 시켜준다.
a = [int(input()) for _ in range(int(input()))]
# 3
# 1
# 2
# 3 -> [1, 2, 3]
👉 처음 입력받은 3만큼 반복해 input()
을 받아 리스트를 만들어 준다. 이거는 문제마다 다르게 써야 한다. 처음 입력받은 3이 나중에 다른 곳에 쓸 때가 있다면 따로 변수로 입력을 받아 반복문에 넣어야 한다.
a, a_list = int(input()),list(map(int, input().split()))
# 10
# 1 2 3 4 -> 10 [1, 2, 3, 4]
👉 처음에는 변수를 받고 다음 줄에는 리스트형으로 입력을 받을 수 있다. 위에서처럼 마찬가지로 추가로 입력을 받고 싶다면 변수를 추가로 지정해 주고, 어떻게 입력을 받을지 추가를 해주면 된다.
a = sorted(set(list(map(int, input().split()))))
# 8 2 8 2 9 9 1 4 5 -> [1, 2, 4, 5, 8, 9]
👉 set()
은 입력받은 리스트 중에 중복이 있으면 중복을 제거해 주고 하나만 남겨준다. sorted()
는 리스트를 정렬하여 반환시켜준다. sorted()
는 원래 리스트에 영향을 주지 않고 결괏값을 반환시키고, sort()
는 원래 리스트에 영향을 주어 리스트 내 목록들이 바뀐다.
💡위의 방법으로 대부분의 문제에서 입력을 받을 수 있다. 하지만 입력하고자 하는 수가 많은 경우에는 input()을 사용하여 풀다 보면 시간 초과로 못 푸는 경우가 있다.
import sys
a = int(sys.stdin.readline().strip())
👉 sys.stdin.readline()
은 한줄로 입력을 받는데, 동시에 개행문자까지 입력을 받는다. strip()
을 사용해서 개행문자를 제거해줍니다.
import sys
a,b,c = map(int,sys.stdin.readline().split())
👉 sys.stdin.readline()
을 이용하여 한줄로 입력을 받고, split()
으로 공백을 기준으로 a, b, c에 값을 대입한다.
import sys
a = list(map(int,sys.stdin.readline().split()))
👉 input().split()
대신에 sys.stdin.readline().split()
을 사용했다고 생각하면 된다.
import sys
input = sys.stdin.readline
a = list(map(int,input().split()))
👉 input
에 sys.stdin.readline
대입하여 사용하였다.
import sys
input = sys.stdin.read
data = input().splitlines()
# data[0] = 1
# data[1] = 2
.
.
.
이렇게 한 줄씩 입력이 주어질때 한번에 받아서 리스트 형태로 넣어준다.
문제에 알맞게
input()
을 사용할지sys.stdin.readline()
을 사용할지 결정해서 사용하면 될것 같다.