알고리즘 공부
두 정수형 배열을 10진수 값으로 더하기
김듀니
2021. 9. 5. 23:06
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