요즘 백준 사이트에서 알고리즘 문제를 자주 풀고 있다.
풀다보니 입력값 받아 처리하는 경우가 잦았다.
매일같이 푸는 문제가 아니라 할 때마다
입력 방법을 검색하고 진행했는데 이참에 정리하면서 공부하고자 글을 작성하게 됐다.
1. 입력값 받기 (문자형)
a= input()
입력값 받기 위한 함수는 input() 이다.
위의 방법이 가장 기본형이고 값은 문자열로 저장된다.
a= input()
print(a)
>>>Hello World!
Hello World!
2. 입력값 받기 (숫자형)
input() 함수의 기본 입력값이 문자형이라
숫자형 입력이 필요할 때는 형변환을 해야한다.
a = int(input())
print(a)
>>>3
3
형변환은 input() 함수에 int를 덮어주면 된다.
3. 여러개 입력값 받기 (문자형)
입력값이 하나가 아닌 여러 개를 받아야 할 경우
input 함수에 split함수를 더해줘서 한 번에 받은 입력값을 여러 개로 나누어준다.
(split은 공백을 기준으로 값을 분리하는 역할을 한다)
a,b = input().split()
print (a)
print (b)
print (a,b)
>>>Hello World!
Hello
World!
Hello World!
(입력값 구분은 띄어쓰기로)
4. 여러개 입력값 받기 (숫자형)
2번과 동일하게 input에 int를 씌어주면 되는줄 알았지만
이렇게 진행할 시 TypeError 오류가 발생한다.
Traceback (most recent call last):
File "main.py", line 1, in <module>
a,b = int(input().split())
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
적혀 있는걸 봤을 때 이렇게 쓰면 '문자열'이 아닌 값형태로 인식되는거 같다.
그래서 다른 방법으로 map과 list를 이용해 입력했다.
l = list(map(int, input().split()))
print(l)
>>>1 2 3
[1,2,3]
여러개 입력받은 값을 map으로 단번에 int형 변환해서
리스트에 저장한 코드다.
*map : 리스트의 요소를 지정된 함수로 처리해주는 함수
보통 여러 개의 데이터를 한 번에 다른 형태로 바꾸기 위해 사용