티스토리 뷰

반응형

 

[Python] 백준 알고리즘 온라인 저지 1008번 : A/B

 

Python3 코드

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

 

또 다른 방법, map 함수를 사용하는 경우

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

 

 

Python3 코드 풀이

 

1. 코드 풀이에 대한 전체적인 내용 정리

수학 연산 중에서 두 수를 나누는 방법을 이해하고 있는지 알아보는 문제이다. 파이썬으로 포함한 컴퓨터에서 나누기 연산을 할 때는 슬래시 기호(/)를 사용해서 수를 나눈다. 그리고 이번 문제에서 필요하진 않지만 이외에도 나누기에 사용하는 두 개의 기호가 더 있다. 일반적인 경우에는 익숙하지 않지만 코딩에서 사용하는 연산자 중에는 나눈 수의 몫을 구하거나 나머지를 구하는 연산자가 있다. 몫을 구하는 연산자는 슬래시 기호 두 개 (//)를 사용하고 나머지 연산자는 퍼센트 기호 (%)를 사용한다. 일반적인 나누기는 정수로 값이 똑 떨어지는 경우도 있고 소수점 이하 수가 있는 실수 형태로 값이 구해지는 경우가 많다. 그런데 몫 연산자 (//) 나 나머지 연산자 (%)는 몫과 나머지만 구하는 것이기 때문에 정수 타입으로 값이 출력된다.

 

이번 문제의 예제 입력과 예제 출력을 보면 일반적인 나누기 연산으로 계산된 값을 출력해야 한다는 것을 알 수 있다. 더러는 소수점 이하 자릿수를 지정해야 하는 경우도 있는데 이번 문제는 그런 제한은 없다. 예제 출력 2의 값처럼 0.8의 경우 소수점 이하 한자리 실수이고 예제 출력 1의 경우 0.33333333333333333333333333333333으로 소수점 이하 숫자가 여러 개다. 어떤 공통점이 없는 것으로 보아 소수점 이하 자릿수를 지정하지 않아도 되는 문제인 것을 알 수 있다.

 

파이썬에서 나누기 연산에 대해 어느 정도 이해가 되어 있다면 다른 수학 연산의 문제와 동일하게 풀 수 있다. 랜덤으로 입력받는 두 수를 나누는 값을 출력하는 코드를 작성한다.

 

2. 첫 번째 코드

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

map 함수를 사용하지 않고 입력받는 두 수를 두 개의 변수에 각각 저장하였다. 사용자가 숫자를 입력하더라도 input 함수로 입력받으면 문자열 형태로 입력받기 때문에 이 문자를 숫자로 변환하기 위해 int 함수로 두 개의 변수를 각각 변환해주었다. 이번 문제는 입력받는 수가 두 개라서 큰 번거로움 없이 코드를 작성할 수 있지만 입력받는 수가 여러 개일 경우 map 함수를 이용하는 것이 좋다.

 

3.두 번째 코드

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

map 함수를 이용해서 input 함수로 데이터를 입력받는 즉시 int 함수로 변환하였다. map 함수의 사용방법은 map(함수, iterable) 형태로 사용한다. 두 번째 인자인 iterable 자료를 첫 번째 인자인 함수를 이용하여 변환할 수 있다. map 함수로 즉시 변환한 두 수는 각각 A, B 변수에 지정해주고서 print 함수를 이용해서 두 수를 나눈 값을 출력해주었다.

 

반응형
댓글
반응형