Posis

[LeetCode][JavaScript] 66. Plus One 본문

알고리즘/leetcode

[LeetCode][JavaScript] 66. Plus One

CooNiHong 2021. 7. 28. 16:33

[LeetCode][JavaScript] 66. Plus One

문제 출처: https://leetcode.com/problems/plus-one/ 

 

Plus One - 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

 

 

[직접 푼 코드]

var plusOne = function(digits) {    
    for (let i = digits.length - 1; i >= 0; i--) {
        if (digits[i] !== 9) {
            digits[i]++;
            return digits;
        }
        digits[i] = 0;
        if (i === 0) {
            digits.unshift(1);
            return digits;
        }
    }
};

 

[문제 풀이]

1. 반복문을 배열의 맨 뒤부터 앞으로 순환하게 만듭니다.

2. 맨 뒤에 숫자가 9가 아닐경우 +1을 해주고 배열을 반환합니다.

3. 9일 경우 0을 넣어주고 배열의 위치가 맨 앞이 아니라면 다시 반복문을 돕니다.

4. 만약 배열의 위치가 맨 앞이라면 배열의 맨앞에 1을 추가합니다. (unshift 메서드)

 

[글을 쓰면서 생각난 점]

알고리즘을 정리하면서 반복문은 필요없지 않을까라는 생각에 for문을 제거후에 시도했지만 [9, 9]같은 9가 여러개가 있는 배열에서 막혀서 반복문이 필요하다는 것을 느낌


알고리즘 스터디: https://github.com/ROUTINE-STUDY/Algorithm

 

GitHub - ROUTINE-STUDY/Algorithm: 초보 알고리즘 스터디 / 누구나 참여 가능

초보 알고리즘 스터디 / 누구나 참여 가능 :runner:. Contribute to ROUTINE-STUDY/Algorithm development by creating an account on GitHub.

github.com

 

누구나 참여 가능한 알고리즘 스터디입니다.
알고리즘뿐만 아니라 개발을 하면서 겪은 이슈, 이론을 정리하는 Routine-Study를 운영 중입니다.
728x90