티스토리 뷰
[Python] 백준 알고리즘 온라인 저지 1000번 : A+B
Python3 코드
A, B = input().split() # 입력되는 문자를 input()함수로 입력받고 split()함수로 나누어 A,B 변수에 저장
print(int(A)+int(B)) # int() 함수로 A와 B를 정수로 변환 하고 두수의 합을 출력
Python3 코드 풀이
1. 코드 작성에 대한 전체적인 풀이
백준 온라인 저지 단계별 문제풀이 중에서 처음으로 int 함수, split 함수가 나오는 문제이다. 막상 알고 나면 정말 쉬운 함수인데 처음에 input 함수를 모르면 당황스러울 수 있다. input함수, split 함수는 이후에도 정말 많이 사용하게 되니 쓰임새를 이해하고 넘어가는 것이 좋다.
2. 코드 첫째줄 문장
A, B = input().split() # 입력되는 문자를 input()함수로 입력받고 split()함수로 나누어 A,B 변수에 저장
우선 input( ) 함수는 사용자로부터 문자열을 입력받을 때 사용하게 된다. 이 문제에서의 사용자는 백준 측인데 위의 문제에서 볼 때 예제 입력 1에 있는 숫자를 입력받게 되는 것이다. 이때에 입력받는 숫자는 랜덤으로 받게 되니 어떤 숫자가 입력되건 맞는 답이 도출되도록 코드를 작성해야 한다. 그럴 때 = 왼쪽에 변수를 두고 = 오른쪽에 input( ) 함수를 작성하면 입력받은 문자를 변수에 선언할 수 있게 된다.
유의해야 할 점은 input 함수로 입력받는 것은 문자열로 입력받는다는 것이다. 사용자가 숫자를 입력하더라도 마찬가지로 문자열 형태로 입력받게 된다. 위의 예제 입력에서 보면 숫자 1과 2를 입력받는 게 아니라 '1 2'라는 숫자 두 개 사이에 공백이 있는 하나의 문자열을 입력받는 것이다.
변수를 A, B 두 개로 두고 split 함수를 사용한 것은 아래에서 마저 설명한다.
다음으로 split( ) 함수는 입력받는 문자를 나눌 때 사용하는 함수이다. 위 문제에서 보면 숫자 두 개를 한 줄에 입력받는데 두 개의 숫자 사이에는 공백으로 구분되어 있다. 이런 경우에는 공백을 기준으로 숫자를 나누면 된다. 사용 형태는 문자열 뒤에 점을 붙이고 split( )을 써주면 된다. 위에서 input( ). split( )이라고 쓴 것은 입력받는 문자가 아직 정해지지 않았으나 어떤 문자이건 공백을 기준으로 나누겠다는 의미이다.
괄호 안에 아무것도 넣지 않으면 공백(띄어쓰기, 탭 등)을 기준으로 문자열을 나눈다.
A, B = input( ). split( ) 문장에서 = 왼쪽에 A, B 두 개로 구분한 것은 튜플(tuple) 자료형의 성질을 이용한 것이다. = 우측에서 입력받은 문자를 공백을 기준으로 나누게 되면 두 개의 문자로 나누어지게 된다. 그 두 개의 문자를 각각 A, B 변수에 저장하겠다는 의미이다.
3. 두번째줄 코드
print(int(A)+int(B)) # int() 함수로 A와 B를 정수로 변환 하고 두수의 합을 출력
위에서 설명 할 때 input 함수로 입력을 받으면 문자열로 입력을 받게 된다고 했다. 그런데 이번 백준 문제에서 요구하는 것은 두 개의 수를 + 연산자로 더하는 것이다. 문자열에서도 + 연산자를 사용할 수 있으나 그건 수학처럼 숫자 두 개를 더하는 값을 출력하는 게 아니라 문자 두 개를 연달아 붙여버리는 기능이다. 그렇기 때문에 입력받은 두 개의 문자를 숫자로 변환하는 과정이 필요하다. 이때 int( ) 함수를 사용하면 숫자 형태의 두 개의 문자를 숫자로 변형할 수 있다. int는 숫자 중에서도 정수를 의미한다.
이렇게 숫자로 변환해서 출력하면 두 수를 더한 값이 출력되게 된다..
'파이썬 스킬업 > 백준 알고리즘 연습' 카테고리의 다른 글
백준 1001번 [파이썬 알고리즘] A-B (0) | 2020.07.01 |
---|---|
백준 10172번 [파이썬 알고리즘] 개 (0) | 2020.06.29 |
백준 10171번 [파이썬 알고리즘] 고양이 (0) | 2020.06.29 |