반응형
문제 링크 / level: Bronze IV
https://www.acmicpc.net/problem/2588
👍이 문제에서 새로 익힌 기술: Extended Slices
Python에서 리스트, 튜플, 문자열을 활용할 때 index를 슬라이싱하면 뭐든 아주 간단해진다. 기본형태는 a[start : end: step(또는 stride)]로 각각 시작위치, 끝낼 위치(포함❌) 그리고 마지막으로 이동규칙 정도로 표현할 수 있을 것 같다.
이 문제에서는 우선 이 슬라이싱 기술을 이용해서 세자리 숫자의 각 자릿수를 뒤에서부터 하나씩 구해 곱함으로써 문제상황을 해결할 수 있었다.
💙전체코드💛
A = int(input())
B = input()
for i in B[::-1]:
print(A*int(i))
print(A*int(B))
B는 문자열인데 B[::-1]의 의미는 맨 뒤에서부터 역순으로 한 자리씩 돈다는 것이다. 즉, 일의 자리 -> 십의 자리 -> 백의 자리 순으로 한 자리씩 구해서 문제에서 원하는 답을 얻을 수 있었다.
참고링크
그리고 Java에서는 각 자릿수를 구하기 위해 보통 1. 나눗셈과 나머지 연산을 활용하는 방법 2. 로그를 활용하는 방법을 사용한다. 그리고 Python에서도 이를 활용할 수 있는 것 같기는 하다. (다음 문제에서 한 번 연습해보도록 해야겠음🤗)
반응형
'🥇Problem Solving (psS2mj) > BOJ' 카테고리의 다른 글
[BOJ] 5543. 상근날드 (Python3) (0) | 2020.09.12 |
---|---|
[BOJ] 3052. 나머지 (Python3) (0) | 2020.09.04 |
[BOJ] 1000. A+B (Python3) (0) | 2020.09.01 |
[BOJ] 2740. 행렬 곱셈 (Java) (0) | 2020.05.28 |
[BOJ] 10093. 숫자 (Java) (0) | 2020.05.24 |
댓글