티스토리 뷰

코딩공부

[백준] 곱셈 2588 with python

별의 별 2022. 3. 22. 23:15

[백준] 곱셈 2588

(3),(4),(5),(6)을 출력하기

# 알고리즘 생각하기

뭔가 쉬워 보이는데 알쏭달쏭한 문제였다.

더보기

그건 내가 오랜만에 코딩을 해서 그런지 그냥 무의 상태라 그런 것 같다.

처음에 우리가 곱셈 하듯이 하나 했다가 

너무 복잡했다.

4*100*5+ 7*10*5 + 2*1*5 구나 거리면서 

어 이걸 어떻게 구현하지 하다가

이건 그냥 472*5 구나를 깨달았고,,, 난 바보인가 생각했다.

음 일단

(3)은 472 * 5 

(4)는 472 * 8

(5)는 472 * 3 

을 한 값이다!!

우린 저 5, 8, 3을 얻어내면 된다.

방법은 많다.

 

# 방법

다양한 방법이 존재한다.

 

1. 나머지(%), 몫(//)을 이용하기

385의 5는 1의 자리 -> 나머지 이용 386%10 => 5 임을 이용하기

        8은 10자리 -> 385//10(몫) 은 38, 여기서 8만 뽑고 싶으니까 38%10 =>8 

        3은 100자리 -> 385 //100 ->3

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

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

 

2. 리스트 사용

input을 받아오면 리스트 문자열이 된다.

그래서 이번에는 b를 문자열 리스트로 받아서

리스트를 이용해보자

a = int(input())
b = input()
a1 = a*int(b[2])
a2 = a*int(b[1])
a3 = a*int(b[0])
a4 = a*int(b)
print(a1, a2, a3, a4,sep='\n')
3 8 5

이렇게 있다고 보면됨

주의할 건

곱할 때 int로 바꿔서 곱하기,, 나 안 해서 틀렸다요

댓글