말랑말랑제리스타일

파이썬에서 여러개 입력받아서 여러개 출력하기 본문

프로그래밍/백준 알고리즘

파이썬에서 여러개 입력받아서 여러개 출력하기

제리제리 2022. 2. 10. 09:46

파이썬에서 여러개 입출력이 필요한 상황

백준 알고리즘을 포함해 알고리즘 코딩테스트에서 여러개의 변수를 입력받아 여러개의 변수로 출력하는 것은 가장 기본적인 요소입니다.

코딩테스트 문제를 보면 대부분의 입력이 입력값의 개수 N 이 제시되고 그 밑에 여러개의 입력값이 따라오고 출력에서도 저장된 리스트를 여러개의 줄로 출력하는 상황이 오기 때문입니다.

 

여러개 입력받기

반응형

여러개의 변수가 입력되는 경우 N을 입력받고 while문을 이용해 N만큼 순회하면서 입력받을 수 있습니다.

N = int(input())
i_Arr = []
while N:
    i_Arr.append(int(input()))
    N -= 1

이 코드는 N개의 int형 변수를 i_Arr라는 리스트에 입력해주는 코드입니다.

만약 여기서 한줄에 두개의 int가 들어있다면 어떻게될까요? 바로 런타임 에러납니다.

이렇게 띄어쓰기로 구분된 두개 이상의 int가 있는 경우 아래 코드를 사용할 수 있습니다.

참고로 N이 0인 경우 false가 되기 때문에 이런 while문으로 사용이 가능합니다.

N = int(input())
i_Arr = []
while N:
    i_Arr.append(list(map(int,input().split())))
    N -= 1

split으로 나눈 입력 문자열을 int로 매핑해서 리스트에 저장하는 코드입니다.

각각 "정수 정수" 형으로 된 내용을 N개 저장한다고 치면 N,2 의 2차원 배열형 리스트가 되는거죠.

 

리스트를 여러개의 라인으로 출력하기

반응형

이렇게 입력된 값을 리스트에 저장하고 중간에 계산도 하고 결과를 만들고 나면 이번에는 출력해야겠죠.

for index,value in enumerate(i_Arr):
    sum = 0
    for j in value:
        sum += j
    print("Case #{}: {} + {} = {}".format(index + 1,value[0],value[1],sum))

i_Arr에 있는 값들을 순회하면서 sum을 계산하고 들어있는 값을 여러개의 줄로 출력해주는 코드입니다.

여기서 index,value로 나누어서 받아준 이유는 마지막에 case에 리스트의 index를 사용하기 위함이고 enumerate로 리스트의 데이터타입을 바꿔주면서 이런 형식의 반복문을 사용 가능하게 해줍니다.

print 문 역시 바깥쪽 반복문 내부에 있기 때문에 여러줄로 출력이 가능하죠.

 

백준 알고리즘 11022

이 모든 내용이 사용되는 기초적인 백준알고리즘 문제가 11022번이더라구요.

위에 있는 두개의 소스코드를 합쳐주기만 하면 아래와 같은 백준 알고리즘 11022번의 답이 됩니다.

N = int(input())
i_Arr = []
while N:
    i_Arr.append(list(map(int,input().split())))
    N -= 1
for index,value in enumerate(i_Arr):
    sum = 0
    for j in value:
        sum += j
    print("Case #{}: {} + {} = {}".format(index + 1,value[0],value[1],sum))

 

반응형
Comments