프로그래밍/파이썬 공부

[백준 #1000][Python] A+B 그리고 map

winblack22 2021. 7. 15. 00:29

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

 

 

풀이

일단 내가 한참을 헤맨 뒤 통과한 코드부터 보자.

a, b = map(int, input().split())
print(a+b)

맞다... 난 많은 걸 잊고 산 사람이다.

 

다중할당을 어제 공부해놓고 a와 b를 동시에 받을 생각을 못하고 하나씩 받다가 런타임에러를 마주하고 절망했다.

 

두개의 변수를 입력받을 때는 input().split()을 쓰면 되는 구나! 하고 코드를 고쳤다가 틀렸다는 글자를 보고 또 절망했다.

 

split의 결과값이 정수가 아닌 문자열로 나오기 때문에 int로 하나하나 고쳐줘도 되지만, map이라는 게 있지 않은가.

  • 변수1, 변수2 = map(int, input().split())

 *map은 리스트의 item들을 지정된 함수로 처리해주는 함수

 

근데 map이 기억이 안나서 이것저것 뒤져봤는데 도통 이해가 되지 않는다. map 특집으로 따로 날잡고 공부를 해야할 듯 하다. @2021.07.15 00:29

 


여러 개의 데이터를 한번에 입력 받고 싶을 때? >> split() !

a , b = input().split()

위의 코드 실행시 공백으로 구분하여 데이터를 나눈다. split()에서 빈 괄호가 ' '를 의미하고 있는 것이다.

하지만 여기서 바로 a + b를 할 수는 없다. 

input으로 입력 받은 건 전부 문자열로 저장되기 때문이다.

그래서 형변환이 필요하다.

input을 int로 감싸주는 방법도 있지만, map일괄적인 형변환을 가능하게 해준다.

  • map(자료형, input( ). split( ))
a, b = map(int, input("숫자 두 개를 입력해주세요 : ").split())
print(a+b)

>> 숫자 두 개를 입력해주세요 : 819 1224
>> 2043

map을 다시 공부했다. 다시 보니까 다중할당이랑 map이랑 관련있는 건 일괄적인 형변환 밖에 없었다. ㅎㅎㅎ... 어제 너무 더워서 머리가 어떻게 됐나보다. 아무튼. 오늘도~ 아자아자~ @2021.07.15 19:20