일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 친절한 설명
- 10926
- 10807
- Baekjoon
- 꾸준히
- CSS
- implement
- VS
- 문제풀이
- HTML
- Implemention
- 문자열
- C Programming
- Beakjoon
- C 언어
- 정리
- greedy
- 초보
- 파이썬
- Python
- C
- 백준
- 심화1
- 구현
- 그리디
- 설명
- 입문
- c언어
- 알고리즘
- 코드엔진
- Today
- Total
안경잡이 구루루
백준 2588 [python] 본문
문제
(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
출력
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
예제 입력 1
예제 출력 1
나:
input1 = int(input())
input2 = input()
mul1 = input1*int(input2[2])
mul2 = input1*int(input2[1] )
mul3 = input1*int(input2[0])
print(mul1)
print(mul2)
print(mul3)
print(mul1+ mul2*10+ mul3*100)
완성된 코드는 위와 같다.
input1 = int(input())
input2 = input()
mul1 = input1*int(input2[2])
mul2 = input1*int(input2[1] )
mul3 = input1*int(input2[0])
우선 입력값 2개를 받아야 하니 한줄에 하나씩 받는다.
이때 input2는 문자열로 받는데 그이유는 문자열 슬라이싱을 이용해 input2의 각 자릿수 마다 input1에 곱하기 위함이다.
문자형태와 정수형태로는 값을 구할 수 없기 때문에 input2를 곱할 때는 정수형 int로 바꾸어 주고 곱하여 변수 mul에 값을 대입한다.
print(mul1)
print(mul2)
print(mul3)
print(mul1+ mul2*10+ mul3*100)
이후 각 자리수에 대한 곱을 한줄에 하나씩 출력한다.
마지막 출력에는 (1) * (2) 의 결과값을 출력해야 하니까 우리가 구했던 mul 값들중 mul2는 10의 자리, mul3는 100의 자리 계산이었기 때문에 각 값에 10, 100을 곱해주고 그 값을 모두 더해 최종값을 출력한다.
다른사람1:
a = int(input())
b = int(input())
print(a*(b%10),a*((b//10)%10),a*(b//100),a*b)
완성된 코드는 위와 같다.
a = int(input())
b = int(input())
a,b를 한줄에 받지 않으니 각각 따로 input()을 사용해 문자열로 입력값을 받았고 그렇기에 int형으로 바꾸어주었다.
print(a*(b%10),a*((b//10)%10),a*(b//100),a*b)
먼저 b의 1자리를 얻기 위해 나머지를 반환하는 나머지( % )를 이용해 10으로 나눴다.
b의 10자리를 얻기 위해서 몫을 반환하는 나머지( // )와 나머지를 반환하는 나머지( % )를 함께 사용해 10으로 나눴다.
b의 100자리를 얻기 위해서 몫을 반환하는 나머지( // )를 이용해 100으로 나눴다 .
마지막의 값은 a,b값의 곱이기 떄문에 나처럼 복잡하게 안하고 바로 입력값을 곱했다. 이때 간결하게 출력하기 위해서 print함수를 한번 사용하여 컴마(',')를 기준으로 한칸씩 띄어서 한줄에 결과값을 출력했다
다른사람2:
https://hwiyong.tistory.com/200
a = int(input())
b = int(input())
print("%d\n%d\n%d\n%d"%((a * (b % 10)), (a * ((b % 100)//10)), (a * (b//100)), (a * b)))
완성된 코드는 위와 같다.
다른사람1과 입력값을 구하는 것과 값을 구하는 방법은 같다.
그런데 print 출력에 있어서 문자열포매팅을 사용했다. 각 값은 정수형이기 때문에 %d를 사용했고 한줄에 하나씩 출력 하기 위해서 /n인 제어문자를 사용했다.
<문자열 포매팅>
' %s ' %문자열 | 문자열(string) 대입 |
' %c ' %문자 | 문자( character ) 1개 대입 |
' %d ' %정수 | 정수( integer ) 대입 |
' %f ' %부동소수 | 부동소수( floating-point ) 대입 |
<제어문자 참고 >
2020/04/08 - [파이썬(Python)/문제풀이(백준,BaekJoon)] - 백준 10869 [python]