๐Ÿฆโ€๐Ÿ”ฅ์ดˆ๋ณด์ž ์นœํ™” ๊ฐ€์ด๋“œ 'Plus One' โ€“ LeetCode 66 (C++ | Python | JavaScript)

๋ฐœํ–‰: (2026๋…„ 1์›” 1์ผ ์˜คํ›„ 02:56 GMT+9)
3 min read
์›๋ฌธ: Dev.to

Source: Dev.to

Problem Description

์ฃผ์–ด์ง„ ๋ฐฐ์—ด digits๋Š” ๊ฐ ์›์†Œ๊ฐ€ ํ•œ ์ž๋ฆฌ ์ˆซ์ž์ธ ๋น„์Œ์ˆ˜ ์ •์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ž๋ฆฌ(์ตœ์ƒ์œ„ ์ž๋ฆฌ)๋Š” ๋ฐฐ์—ด์˜ ์•ž์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.
๋ฐฐ์—ด์—๋Š” ์„ ํ–‰ 0์ด ์—†์Šต๋‹ˆ๋‹ค(๋‹จ, ์ˆซ์ž ์ž์ฒด๊ฐ€ 0์ธ ๊ฒฝ์šฐ๋Š” ์˜ˆ์™ธ).

๋‹น์‹ ์˜ ์ž‘์—…์€ ์ด ์ •์ˆ˜์— 1์„ ๋”ํ•œ ๋’ค, ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์—ด ํ˜•ํƒœ์˜ ์ˆซ์ž๋“ค๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Edge cases

  • ์ˆซ์ž๊ฐ€ 9๋ณด๋‹ค ์ž‘์œผ๋ฉด, ํ•ด๋‹น ์ž๋ฆฌ์ˆ˜๋ฅผ 1๋งŒํผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด ๋์ž…๋‹ˆ๋‹ค.
  • ์ˆซ์ž๊ฐ€ 9์ด๋ฉด, 0์ด ๋˜๊ณ  1์„ ์™ผ์ชฝ(์•ž์ชฝ) ์ž๋ฆฌ๋กœ ์˜ฌ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ์ž๋ฆฌ์ˆ˜๊ฐ€ 9์ธ ๊ฒฝ์šฐ(์˜ˆ: [9,9,9]) ๊ฒฐ๊ณผ๋Š” ์•ž์— 1์ด ๋ถ™๊ณ  ๋‚˜๋จธ์ง€๋Š” 0์ธ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: [1,0,0,0]).

C++ Solution

class Solution {
public:
    vector plusOne(vector& digits) {
        for (int i = digits.size() - 1; i >= 0; --i) {
            if (digits[i]  List[int]:
        for i in range(len(digits) - 1, -1, -1):
            if digits[i] = 0; i--) {
        if (digits[i] < 9) {
            digits[i]++;
            return digits;
        }
        digits[i] = 0;
    }
    // All digits were 9
    digits.unshift(1);
    return digits;
};

Key Points

  • ์—ญ์ˆœ ํƒ์ƒ‰: ๋ฐฐ์—ด์˜ ๋์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ์˜ฌ๋ฆผ(carry)์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ์กฐ๊ธฐ ๋ฐ˜ํ™˜: 9๋ณด๋‹ค ์ž‘์€ ์ˆซ์ž๋ฅผ ์ฐพ์œผ๋ฉด ํ•ด๋‹น ์ž๋ฆฌ์ˆ˜๋ฅผ 1 ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ๋ฐ”๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹คโ€”์ถ”๊ฐ€ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ฐฐ์—ด ์กฐ์ž‘: ๋ชจ๋“  ์ž๋ฆฌ์ˆ˜๊ฐ€ 9์ธ ๊ฒฝ์šฐ ์•ž์— ์š”์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค(C++์˜ insert, JavaScript์˜ unshift`, Python์˜ ๋ฆฌ์ŠคํŠธ ์—ฐ๊ฒฐ ๋“ฑ).

์ด ๋ฌธ์ œ๋Š” ๋‹จ์ˆœํ•œ ๋กœ์ง์œผ๋กœ โ€œํฐ ์ •์ˆ˜โ€๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋งŽ์€ ์–ธ์–ด์—์„œ ํ‘œ์ค€ ์ •์ˆ˜ ํƒ€์ž…์ด ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋  ์ˆ˜ ์žˆ๋Š” ํฐ ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ์˜ฌ๋ฆผ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

๐ŸŽฏ ์ดˆ๋ณด์ž์šฉ ๊ฐ€์ด๋“œ 'N-Repeated Element in Size 2N Array' โ€“ LeetCode 961 (C++ | Python | JavaScript)

๋ฌธ์ œ ์„ค๋ช… ๊ธธ์ด๊ฐ€ 2N์ธ ๋ฐฐ์—ด nums๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ฐฐ์—ด์—๋Š” N + 1๊ฐœ์˜ ๊ณ ์œ ํ•œ ์š”์†Œ๊ฐ€ ์žˆ์œผ๋ฉฐ, ๊ทธ ์ค‘ ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ์š”์†Œ๊ฐ€ N๋ฒˆ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋ชฉํ‘œ...

66. ํ”Œ๋Ÿฌ์Šค ์›

๋ฌธ์ œ ์„ค๋ช…: ๋‹น์‹ ์€ ํฐ ์ •์ˆ˜๋ฅผ ์ •์ˆ˜ ๋ฐฐ์—ด digits ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฐ digitsi ๋Š” ์ •์ˆ˜์˜ iแต—สฐ ์ž๋ฆฌ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ทธ ์ž๋ฆฌ์ˆ˜๋Š” โ€ฆ

[BOJ/C, C++] ๋‹จ๊ณ„๋ณ„๋กœ ํ’€์–ด๋ณด๊ธฐ ๋ฌธ์ž์—ด ~ 2์ฐจ์› ๋ฐฐ์—ด

2026โ€‘01โ€‘02 ์ผ์ž ์ •๋ฆฌ ๋ฌธ์ž์—ด๋ถ€ํ„ฐ 2์ฐจ์› ๋ฐฐ์—ด๊นŒ์ง€ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์— ๊ฐ ๋ฌธ์ œ๋ณ„ ํ’€์ด์™€ ํ•ต์‹ฌ ํฌ์ธํŠธ๋ฅผ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

[BOJ/C, C++] ๋‹จ๊ณ„๋ณ„๋กœ ํ’€์–ด๋ณด๊ธฐ / ์ž…์ถœ๋ ฅ๊ณผ ์‚ฌ์น™์—ฐ์‚ฐ ~ 1์ฐจ์› ๋ฐฐ์—ด

1008๋ฒˆ A/B ๋ฌธ์ œ ๋งํฌ c include int main { double A, B; scanf'%lf %lf', &A, &B; printf'%.9lf', A / B; } ์†Œ์ˆ˜์  ์•„๋ž˜ 9์ž๋ฆฌ ์ด์ƒ์„ ์ถœ๋ ฅํ•˜๋ฉด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค. float๋Š” ์•ฝ 6์ž๋ฆฌ๋งŒ ์ •ํ™•ํžˆ ํ‘œํ˜„ํ•˜๋ฏ€๋กœ double์„ ์‚ฌ์šฉ...