안경잡이 구루루

백준 2588 [python] 본문

카테고리 없음

백준 2588 [python]

구루루(gururu) 2020. 4. 10. 15:04
반응형

 

문제

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

 

 

(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:

https://yongku.tistory.com/entry/%EB%B0%B1%EC%A4%80-2588%EB%B2%88-%EA%B3%B1%EC%85%88-%ED%8C%8C%EC%9D%B4%EC%8D%ACPython

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]

 

반응형