[Python] 입출력과 사칙연산

마이제이·2021년 6월 24일
0

2557: Hello World

Hello World!

간단하게 print를 활용하는 문제다.
작은따옴표('') 혹은 큰따옴표("")를 활용하여 출력하고자 하는 String을 감싸서 출력한다.

print('Hello World!')

10718: We love kriii

강한친구 대한육군
강한친구 대한육군

위 문제에서 한 줄만 추가하여 해결할 수 있을 것 같다.

print('강한친구 대한육군')
print('강한친구 대한육군')

print 한 줄로만 문제를 해결해야 한다면

print('강한친구 대한육군\n강한친구 대한육군') 

10171: 고양이

\    /\
 )  ( ')
(  /  )
 \(__)|

너무 쉽다. 각 줄을 단순 출력만 하면 된다.

print('\    /\')
print(' )  ( ')')
print('(  /  )')
print(' \(__)|')

첫 번째 에러.
작은 따옴표를 사용했더니 안에 있는 작은 따옴표가 먼저 인식되어 꼬여버렸다.
이럴 때는 작은따옴표 대신 큰따옴표를 사용하자.

print("\    /\")
print(" )  ( ')")
print("(  /  )")
print(" \(__)|")

두 번째 에러.
\String으로 들어가는 게 아니라 혼자 요상한 존재감을 뽐내고 있다.
이 문제를 해결하기 위해서는 이스케이프 코드라는 개념을 짚고 가야한다.


이스케이프 코드 (Escape Code)

  • \n : 문자열 안에서 줄을 바꿀 때
  • \t : 문자열 사이에 탭 간격을 줄 때
  • \\ : 문자 \를 그대로 쓰고 싶을 때
  • \' : 작은 따옴표(')를 그대로 사용할 때
  • \" : 큰 따옴표(")를 그대로 사용할 때
  • \r : 캐리지 리턴, 줄 바꿈 문자, 현재 커서를 가장 앞으로 이동시킬 때
  • \f : 폼 피드, 줄바꿈 문자, 현재 커서를 다음 줄로 이동시킬 때
  • \a : 출력 시 컴퓨터에서 삐 소리
  • \b : 백 스페이스
  • \000 : 널 문자

즉, \String으로 사용하고 싶으면 \\를 써야하는 것을 알게되었다.

print("\\    /\\")
print(" )  ( ')")
print("(  /  )")
print(" \(__)|")

10172: 개

|\_/|
|q p|   /}
( 0 )"""\
|"^"`    |
||_/=\\__|

바로 이전에 있던 고양이 문제에서 크게 혼났기 때문에
이번 문제는 묘한 자신감이 생겼다.

print('|\\_/|')
print('|q p|   /}')
print('( 0 )"""\\')
print('|"^"`    |')
print('||_/=\\\\__|')

2588: 곱셈

대략 문제는 이렇다.

세 자리의 자연수 (1), (2)가 주어졌을 때,
(3), (4), (5), (6)에 들어갈 값을 구하는 프로그램을 작성하는 문제다.

예제 입력

472
385

예제 출력

2360
3776
1416
181720

엔터키를 기준으로 값을 입력받고 있다.
기본적으로 값을 입력받을 때 input()을 쓴다.
하지만 우리는 입력받은 값으로 계산을 해야 하기 때문에
String이 아닌 int 즉, 정수형으로 받아야 한다.
이런 상황에서는 int(input())을 사용한다.

a = int(input())

정리

  • input() : 줄 바꿈을 기준으로 단일 값을 String으로 입력받음
  • int(input()) : 줄 바꿈을 기준으로 단일 값을 정수형으로 입력받음
  • input().split() : 공백을 기준으로 다수의 값을 String으로 입력받음
  • map(int, input().split()) : 공백을 기준으로 다수의 값을 정수형으로 입력받음

어떤 세 자리의 자연수가 주어졌을 때,
일의 자리 숫자와 십의 자리 숫자, 그리고 백의 자리 숫자를 구해야한다.
일의 자리 숫자는 10으로 나눈 나머지를 구하면 되고,
십의 자리 숫자는 100으로 나눈 나머지에서 10으로 나눈 몫을 구하면 되고,
백의 자리 숫자는 100으로 나눈 몫을 구하면 된다.

정리

  • 일의 자리 숫자 : 10으로 나눈 나머지
  • 십의 자리 숫자 : 100으로 나눈 나머지에서 10으로 나눈 몫
  • 백의 자리 숫자 : 100으로 나눈 몫

우리는 나눗셈을 할 때, /를 사용한다.
하지만, /는 몫이 출력되는 것이 아닌
몫과 나머지를 합친 나눈 값이 출력된다.
우리는 몫만 필요하지 나머지는 필요 없다.
이 때, //를 사용한다.
나머지를 구할 때는 %를 사용한다.

정리

  • / : 나눗셈을 수행한 뒤 나눈 값을 출력 (나머지 포함)
  • // : 나눗셈을 수행한 뒤 몫을 출력 (나머지 버림)
  • % : 나눗셈을 수행한 뒤 나머지를 출력

우리는 이제
위에서 정리한 내용을 바탕으로
코드로 표현하면 끝이다.

a = int(input())
b = int(input())

print(a * (b % 10))
print(a * ((b % 100) // 10))
print(a * (b // 100))

print(a * b)
profile
studylog

0개의 댓글