728x90
def arrayToIntValue(arr):
mutableScale = 1
result = 0
for value in reversed(arr):
result += value * mutableScale
mutableScale *= 10
return result
def addToArray(arr1, arr2):
return arrayToIntValue(arr1) + arrayToIntValue(arr2)
print(addToArray([1,2,5,5] , [3,4,5]))
# 출력결과 1600
처음에는 배열의 숫자를 하나씩 빼서 문자열로 붙였다가 StandardLibrary에서 제공해줄지도 모르는 캐스팅을 사용해서 숫자로 만들어야 하나 싶었는데, 조금 더 생각해보니 언젠가 웹서칭하다가 봤던 문제였던걸 떠올렸다.
뒷자리부터 십진수로 바꿔주기 위해 arrayToIntValue함수를 만들었다.
[1,2,5,5]의 경우 1의 자리인 맨뒤 5에 1을 곱하고 그 전 숫자인 5에는 10 , 그 전 숫자 2엔 100, 그 앞엔 1000 을 곱한다.
[1,2,5,5]는 1255의 숫자로 변환되고 [3,4,5]는 345로 변환되었다.
addToArray에서는 변환된 두 숫자를 더하여 return하도록 한다.
결과 1600이 출력되도록 했다.
728x90
'알고리즘 공부' 카테고리의 다른 글
재귀를 사용한 팩토리얼, 피보나치 구현 (0) | 2021.09.08 |
---|---|
k번째로 작은 수 (0) | 2021.09.08 |
백준 2530: 인공지능 시계 (0) | 2021.09.06 |