| 백준 2588번

Yoonsik·2022년 5월 21일
0

BAEKJOON

목록 보기
2/2
post-thumbnail


2588번 문제 링크

💻 풀이

이 문제를 풀며 중요하게 생각해 보아야 할 부분은 (3), (4), (5) 번 값을 구하는 방법이다.
그러기 위해선, (1)번 값에 (2)번 값의 백의 자리수, 십의 자리수, 일의 자리수를 각각 나눠서 곱해주어야 한다.

ex)
472 x 5 = 2360
472 x 8 = 3776
472 x 3 = 1416

이를 구현하기 위해 생각한 방법이 문자열 인덱스를 이용한 문자열의 문자 참조 이다.

📑 Code

num1 = int(input())
num2 = input()      # 문자열 정수 형태로 입력받음  (문자열의 문자 참조를 이용하기 위함)

result1 = int(num2[2]) * num1 # (3) 위치에 들어갈 값

result2 = int(num2[1]) * num1  # (4) 위치에 들어갈 값

result3 = int(num2[0]) * num1  # (5) 위치에 들어갈 값

result4 = result1 + (result2 * 10) + (result3 * 100) # (6) 위치에 들어갈 값
total = [result1, result2, result3, result4]

for i in total:
  print(i)

1) 계산할 값 (1), (2) 입력 받기

먼저, 계산할 값(1),(2)를 변수 num1, num2에 각각 입력 받는다. 이때 (2)번 값은 문자열의 문자참조를 적용하기 위해, int형으로 캐스팅 하지 않는다.(input() 함수는 입력되는 모든 값을 문자열로 취급하기 때문)

2) (3), (4), (5), (6) 값 구하기

문자열 정수 '385'의 0번째 인덱스의 값은 '3', 1번째 인덱스의 값은 '8', 2번째 인덱스의 값은 '5'이다.
이를 이용하여 (3), (4), (5) 위치에 들어갈 값을 구해준다.

result1 = int(num2[2]) * num1 # (3) 위치에 들어갈 값

result2 = int(num2[1]) * num1  # (4) 위치에 들어갈 값

result3 = int(num2[0]) * num1  # (5) 위치에 들어갈 값

마지막으로, 472 x 385의 값인 (6)번 값을 구해준다.

result4 = result1 + (result2 * 10) + (result3 * 100) # (6) 위치에 들어갈 값

3) 결과 출력

출력할 결과 (3), (4), (5), (6) 이 들어있는 리스트 total을 for문의 시퀀스로 주어, 결과를 출력하게 하였다.

total = [result1, result2, result3, result4]

for i in total:
  print(i)
profile
꾸준함의 힘

0개의 댓글