반응형

안녕하세요 밤샘공부입니다~

[백준 1008번]

질문이 있으시면, 아래 오픈채팅방이나 메일로 보내주세요~

2시간 이내에 답변 드리겠습니다. 

 

오픈챗 링크 : https://open.kakao.com/o/srASNxef

메일 주소 : studying.all.night.1114@gmail.com

 

전달력을 높이기 위해 평어체를 사용하였습니다.

 


1. 문제 설명

 

 (1) 문제

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

 

 (2) 입력

  첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

 

 (3) 출력

  첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다.

 

 (4) 예제 

  ① 예시 1

   - 입력 

1 3

   - 출력 

0.33333333333333333333333333333333​

 


2. 문제 해석 및 총평

 

   두 수를 입력받은 뒤 파이썬의 나눗셈 연산 방법을 묻고 있는 기본 문법 문제 이다. 빨리 풀고 넘어가면 되는 문제이긴 하나, 2, 3강과 마찬가지로, 'input' 함수의 특징을 명확히 이해하기 위해 다양한 방법으로 풀어보았다. 이런식으로 input 문법을 쓸 수도 있구나~ 하고 깨닫고 넘어가면 좋을듯 하다. 또한, 앞선 문제들과 차별화 되는 점은 "답이 1개가 아니라는 사실"이다. 우리는 (10의 -9승)에 해당하는 오차범위 이내로만 답을 출력하면 된다. 이 문제는 굳이 자료형에 대한 세부사항을 지정해주지 않아도 되는 파이썬이 문제풀이에 매우 유리한듯 하다.

 


3. 코드

 

 (1) 모범답안

#모범답안
a, b = input().split()
a, b = int(a), int(b)
print(a/b)

   기본적으로 input().split()을 이용해 공백이 포함된 문자열을 입력받았고, 이때 str 자료형으로 입력된 두 수를 나눗셈 연산하기 위해서는 int 자료형으로 변환해주어야 한다. (두번째 줄) 이후 두 수의 뺄셈 결과를 print 함수로 출력하면 된다. 

 

*주의 : 파이썬의 나눗셈 관련 연산에서, ' / ' 기호는 소수 결과를 반환하며 , ' // ' 기호는 몫을 반환하며 '%' 기호는 나머지를 반환한다.

 

 (2) 추가풀이

#추가풀이
a, b = map(int, input().split())
print(a/b)

   map함수를 이용하면 위 모범답안의 코드 두줄을 한줄에 쓸 수 있게 되는데, 위 코드에서 map함수의 역할은 "다중 형변환"이다. 굳이 일일히 형변환 해주지 않고, map함수 하나로 입력받은 원소들을 int형으로 바꿀 수 있다.  

 

 (3) 추가풀이

#추가풀이
lst = list(map(int, input().split()))
print(lst[0]/lst[1])

   리스트 자료형에 대해 안다면, 리스트로 입력받은 뒤 map자료형으로 int로 원소들의 값을 변환해주는 위 코드를 사용해줄 수 있다. 이후 0번 인덱스 값(A)과 1번 인덱스 값(B)을 나누어 준 결과를 출력한다.  

반응형