Algorithm/Online judge

[LeetCode] Array > Plus One

민철킹 2021. 5. 7. 16:25

https://leetcode.com/explore/interview/card/top-interview-questions-easy/92/array/559/

 

Explore - LeetCode

LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore.

leetcode.com

 


풀이

deque라이브러리를 사용하여 큐를 만들고 각 자릿수가 10을 넘으면 다음 자릿수를 추가하거나 한자리 올려주는 식으로 하려고 하다가, 그냥 단순 캐스팅을 사용하는 것이 더 간단하게 해결할 수 있을 것이라고 생각하였다.

 

parameter로 주어지는 배열이 정수형 배열이기 때문에 map을 이용하여 문자열로 캐스팅해주고 이를 join메서드로 합쳐준다. 

  • ex) [1, 2, 3] ==> ["1", "2", "3"] ==> "123"

다시 정수형으로 캐스팅하여 1을 더해준다. 

  • ex) "123" ==> 123 ==> 124

자릿 수를 하나씩 for문으로 뽑아 쓰기 위해서 다시 문자열로 캐스팅

  • 124 ==> "124"

for문을 통해 앞자리부터 뽑아서 정수로 바꿔서 리스트에 append

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        plus_one = str(int("".join(list(map(str, digits)))) + 1)
        digits = []
        for i in plus_one:
            digits.append(int(i))
        return digits
반응형