코딩 테스트/leetCode

[leetCode] 1281. Subtract the Product and Sum of Digits of an Integer (Python)

우주바다 2022. 10. 18. 17:34
728x90

▼ 문제 바로가기 (링크) 

https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer/

 

Subtract the Product and Sum of Digits of an Integer - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com


정수 n이 주어지면, 한 자리씩 끊은 후

각 숫자를 곱한 결과와 더한 결과를 구한다. 

그 후 곱셈 결과에서 덧셈 결과를 뺀 수를 반환하는 문제.

 

class Solution:
    def subtractProductAndSum(self, n: int) -> int:
        
        digits = list(map(int, str(n)))          
        a , b = digits[0], digits[0]

        for j in range(1,len(digits)):
            a = a * digits[j]
            b += digits[j]
        
        return a - b

처음에는 가장 먼저 digits라는 새로운 리스트를 빈 상태로 만들고

늘 써서 익숙한 for 문과 append()로 digits를 채우려 했다.

그러다 map을 사용하면 더 좋을 것 같아 검색해서 한 줄로 작성했다.

 

문자열로 형 변환한 n을 정수 자료형으로 변환해서

새로운 리스트로 선언과 동시에 할당. 훨씬 간결하다.

 

map 함수의 용법은 알고 있지만

새로운 리스트를 일단 빈 상태로 선언하는 것에 익숙했는데

이렇게 작성하는 것도 익숙해져야겠다.

 

Runtime: 50 ms, faster than 60.89%.

Memory Usage: 13.9 MB, less than 9.49%.

728x90
반응형