티스토리 뷰

반응형

 

[Python] 백준 알고리즘 온라인 저지 10869번 : 사칙연산

 

Python3 코드

A,B = map(int,input().split())
print(A+B, A-B, A*B, A//B, A%B, sep='\n')	
# sep='\n'로 줄바꿈

 

 

Python3 코드 풀이

1. 문제를 푼 방법에 대한 전체적인 내용 설명

더하기, 빼기, 곱하기, 나누기의 사칙연산을 파이썬 코드로 작성해보는 문제이다. 이 문제에서 나누기 연산자는 몫을 구하는 연산자(//)와 나머지를 구하는 연산자(%)를 사용해야 문제를 풀 수 있다. 이 점만 유의해서 풀고 나머지 코드에는 딱히 정답은 없기 때문에 편하게 작성해도 된다고 생각한다. 나의 경우 앞서서 백준 알고리즘 수학 연산 문제를 풀면서 익숙해진 방법으로 코드를 작성해보았다. 

 

2. 코드 첫째줄, 두 수를 입력받는다.

A,B = map(int,input().split())

앞에서 풀였던 다른 수학 연산 문제와 동일하게 입력받는 두 수는 랜덤으로 입력되고 공백으로 구분된 문자열로 입력받게 된다. 예제 입력 1을 보면 알 수 있듯 '7 3' 형식의 한 덩어리의 문자열로 입력받게 된다. 

 

이 코드에서 map 함수를 사용하지 않는 경우를 코드로 옮겨보면 아래와 같다.

A, B = input().split()
A = int(A)
B = int(B)

백준 문제를 몇 문제 풀다 보니 입력받는 문자를 숫자로 변환하는 경우가 종종 있다는 것을 알게 되었다. 그래서 각각의 변수를 int 함수로 변환을 해주는 것도 코드로 작성이 가능하지만 map 함수를 이용해서 한 줄로 작성하는 것이 더 사용하기 간편하게 느껴졌다. 

 

input 함수는 문자를 입력받을 때 사용하는 함수이고 split 함수는 문자열을 나눌 때 사용하는 함수이다. input 함수로 입력받는 것은 숫자가 입력되더라도 문자열로 입력받게 되므로 숫자 계산을 해야 하는 경우 int 함수를 이용해서 숫자로 변환해야 한다. split 함수는 괄호에 아무것도 입력하지 않으면 공백을 기준으로 나눈다. map 함수는 괄호에 두 개의 인자를 입력했다. 첫 번째 인자에 함수, 두 번째에는 iterable 자료형을 입력하면 첫 번째 입력받은 int 함수로 두 번째 데이터를 숫자로 변환할 수 있다. 

 

3.코드 두 번째 줄, 사칙연산 출력문을 작성한다.

print(A+B, A-B, A*B, A//B, A%B, sep='\n')	
# sep='\n'로 줄바꿈

예제 출력 1의 출력 값을 보면 두 수를 계산한 각각의 값이 세로로 하나씩 출력되었다. 이런 규칙으로 출력될 하기 위해서 print 함수의 sep= 파라미터를 이용하였다. sep파라미터는 print 함수에서 쉼표로 구분된 각각의 출력 값 사이에 문자열을 삽입할 수 있다. sep을 지정하지 않으면 기본값은 공백이어서 각각의 값이 가로로 공백 한 칸을 사이에 두고서 출력된다. 이러한 성질을 이용해서 이스케이프 문자인 줄 바꿈 문자 '\n'를 출력 값 사이에 삽입하였다. 혹시라도 이스케이프 문자에 대해 더 궁금하실 분들을 위해 백 슬래시와 이스케이프 문자에 대해 설명한 이전 포스팅 링크를 걸어둔다. ▶이스케이프 문자 추가 설명

 

A, B 두 수의 사칙연산에 사용된 연산자는 더하기(+), 빼기(-), 곱하기(*), 나눗셈의 몫(//), 나눗셈의 나머지(%) 연산자이다. 

 

반응형
댓글
반응형