[오늘의 백준]1000. A+B, 주절주절

한지원·2021년 1월 1일
1
post-thumbnail

누구나 그렇듯..ㅎ 새해를 맞아 새로운 마음으로 새로운 공부를 시작했다.
알고리즘..파이썬으로...

알고리즘은 C로만 해오다 파이썬으로 문제 풀어보려니 좀 막막하기도 했다.
그래도 새로운 시작은 언제나 설렌다. 부지런히 연습해서 파이썬 초고수가 되어야지..!

첫날이니까 제일 만만해보이던 A+B부터 해보는데 런타임에러가 뜨는 것!

실패 코드

a = int(input())
b = int(input())
print(a+b)

입력 값이
1
2
가 아니라
1 2였다 ㅋㅋ

찾아보니 개행문자가 아닌 띄어쓰기로 연속해서 입력한 것을 여러 변수에 할당하고자 할 때 사용하는 map()함수가 있었다.

- map() 함수

map()함수는 할당하고자 하는 자료형을 인자로 표기해주어야한다. 즉 최소 2개의 인자를 넣어줘야한다.

#문자열 입력
s = map(str, input().split())

#정수 입력
i = map(int, input().split())

이것을 참고하여 문제를 제출했다.

성공 코드

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

map함수를 찾아보다보니 input을 대신해서 사용할 수 있는 방법인 readline()도 알게되었다.

- sys.stdin.readline()

대량의 데이터를 반복적으로 입력받을 때 input()대신 입력하면 속도가 향상된다.

import sys

#read에 문자열로 저장
read = sys.stdin.readline() #입력:123 456
print(read) #출력: 123 456

#read2에 list로 저장
read2 = sys.stdin.readline().split() #입력: 123, 456, 789
print(read2) #출력: ['123', '456', '789']

#여러개의 변수에 저장하고자 할 때 map함수 사용
num1, num2 = map(int, sys.stdin.readline().split()) #입력: 12 34
print(num1, num2) #출력: 12 34

파이썬을 써봤다고 해도 0부터 시작하는 코딩은 처음이라 이것저것 공부할게 많아보인다.
그래도 꾸준히 하다보면 어느새 모두 다 내 실력으로 쌓여있을거라는 생각으로 해 나아가야겠다.


2개의 댓글

comment-user-thumbnail
2021년 1월 1일

파이썬 초고수 응원합니다!

1개의 답글