반응형

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

[백준 10869번]

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

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

 

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

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

 

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

 


1. 문제 설명

 

 (1) 문제

  두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오.

 

 (2) 입력

  두 자연수 A와 B가 주어진다. (1 ≤ A, B ≤ 10,000)

 

 (3) 출력

  첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A*B, 넷째 줄에 A/B, 다섯째 줄에 A%B를 출력한다.

 

 (4) 예제 

  ① 예시 1

   - 입력 

7 3

   - 출력

10
4
21
2
1

 


2. 문제 해석 및 총평

 

   두 수를 입력받은 뒤 파이썬의 사칙 연산 방법을 묻고 있는 기본 문법 문제 이다. 빨리 풀고 넘어가면 되는 문제이긴 하나, 앞선 강의들과 마찬가지로, 'input' 함수의 특징을 명확히 이해하기 위해 다양한 방법으로 풀어보았다. 이런식으로 input 문법을 쓸 수도 있구나~ 하고 깨닫고 넘어가면 좋을듯 하다. 또한, 앞선 문제들을 한번에 합쳐둔 문제로서 후에 나올 계산기 문제의 전신이기도 하다.

 


3. 코드

 

 (1) 모범답안

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

   기본적으로 input().split()을 이용해 공백이 포함된 문자열을 입력받았고, 이때 str 자료형으로 입력된 두 수를 사칙 연산하기 위해서는 int 자료형으로 변환해주어야 한다. (두번째 줄) 이후 두 수의 덧셈/뺄셈/곱셈/몫/나머지 연산 결과를 출력하면 된다. (이때, python의 print 함수는 기본적으로 줄바꿈이 내장되어 있으므로 추가로 줄바꿈에 대해 신경쓸 필요가 없다.)

 

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

 

 (2) 추가풀이

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

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

 

 (3) 추가풀이

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

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

반응형