백준 문제를 푸는데 '단계별로 풀어보기'에서 '1단계 입출력과 사칙연산'에서 1문제를 안 푼 것을 발견하고 풀어보려 했다.
2588번 : 곱셈
문제를 보고 어떤 방식으로 푸는지 머리로는 알겠으나, python 문법 지식의 부재로 풀지 못했다.
구글링을 통해 알게된 지식은 문자열 인덱스이다.
문자열 인덱스
문자열은 문자들이 일렬로 모여있는 상태이다. 그래서 문자열(string)이라고 부른다.
문자열은 인덱스로 접근하여 문자 하나를 가져올 수 있다.
문자열의 인덱스는 0부터 시작한다.
예를 들어, 아래와 같이 'Guard'의 첫 번째 문자열을 출력하려면 a[0]을 입력하면 된다.
a = 'Guard'
print(a[0] # 첫 번째(인덱스 0) 출력
▶ G
이를 백준 문제에 적용해보면,
a = int(input()) # 문자 하나를 가져올 필요가 없는 값이므로, int 사용
b = input() # 일의 자리, 십의 자리, 백의 자리를 가져와야 하므로 문자열로 출력하는 input 사용
print(a*int(b[2])) # 문제에서 주어진 일의 자리(3)를 계산하는 식
print(a*int(b[1])) # 문제에서 주어진 십의 자리(4)를 계산하는 식
print(a*int(b[0])) # 문제에서 주어진 백의 자리(5)를 계산하는 식
print(a*int(b)) # 문제에서 주어진 세자리수 * 세자리수(6)를 계산하는 식
# 위의 코드를 한 줄로 입력하면,
print(a*int(b[2]), a*int(b[1]), a*int(b[0]), a*int(b), sep='\n')
# sep='/n'는 줄바꿈을 해준다.