포시코딩

[백준] 한 줄로 된 리스트 입력값 받기 본문

자료구조알고리즘/문제풀이

[백준] 한 줄로 된 리스트 입력값 받기

포시 2023. 4. 15. 03:52
728x90

결과

arr = list(map(int, input().split()))  # [1, 2, 3, 4, 5]

급한 사람은 위에꺼 갖다 쓰자

 

개요

지금껏 프로그래머스에서만 문제를 풀어오다 처음으로 백준 문제를 접하게 됐는데

입력값 받는거부터 난관이었다.

 

python의 경우 input()을 통해 값을 입력받는데

숫자 하나면 몰라도

'1 2 3 4 5' 처럼 문자열로 틱 던져주고 이걸 숫자형 리스트로 활용해야 하는 빡치는 상황이 너무 많았다.

 

그래서 이걸 애초에 입력 받을 때 어떻게 처리해야 할지 정리해봄

 

과정

arr = input()  # 1 2 3 4 5

받은 그대로 출력하면 문자열 '1 2 3 4 5' 그대로다.

 

arr = input().split()  # ['1', '2', '3', '4', '5']

split() 함수를 쓰면 쪼개져서 list화 된다. 근데 원소들이 문자인데 이걸 또 숫자 바꿔줘야 한다.

 

arr = map(int, input().split())  # <map object at 0x7fda113685e0>

위의 경우, map을 통해 각각 int형으로 변환할 수 있는데

map의 리턴 값을 그대로 쓸 경우 주석처럼 <map object> 형태로 받게된다.

 

arr = list(map(int, input().split()))  # [1, 2, 3, 4, 5]

이걸 다시 list()로 감싸주면 우리가 원하면 [1, 2, 3, 4, 5]의 형태로 값이 나오는걸 확인할 수 있다.

728x90