๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿงฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/๐Ÿต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด(Java)

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Java] ์ˆซ์ž์˜ ํ‘œํ˜„

by carrot0911 2025. 4. 16.

๋ฌธ์ œ ์„ค๋ช…

https://school.programmers.co.kr/learn/courses/30/lessons/12924

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

Finn์€ ์š”์ฆ˜ ์ˆ˜ํ•™๊ณต๋ถ€์— ๋น ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜ํ•™ ๊ณต๋ถ€๋ฅผ ํ•˜๋˜ Finn์€ ์ž์—ฐ์ˆ˜ n์„ ์—ฐ์†ํ•œ ์ž์—ฐ์ˆ˜๋“ค๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์—ฌ๋Ÿฌ ๊ฐœ๋ผ๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 15๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด 4๊ฐ€์ง€๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • 1 + 2 + 3 + 4 + 5 = 15
  • 4 + 5 + 6 = 15
  • 7 + 8 = 15
  • 15 = 15

์ž์—ฐ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์—ฐ์†๋œ ์ž์—ฐ์ˆ˜๋“ค๋กœ n์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ returnํ•˜๋Š” solution๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • n์€ 10,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

n result
15 4

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ๋ฌธ์ œ์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

class Solution {
    public int solution(int n) {
        // ์—ฐ์†๋œ ์ž์—ฐ์ˆ˜๋กœ n์„ ํ‘œํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜
        int answer = 0;
        
        // i: ์—ฐ์†ํ•ฉ์˜ ์‹œ์ž‘ ์ˆซ์ž
        for (int i = 1; i <= n; i++) {
            // ๋ถ€๋ถ„ํ•ฉ ์ดˆ๊ธฐํ™”
            int sum = 0;
            // j: ์—ฐ์†๋œ ์ˆซ์ž ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ ํ•ฉ ๊ณ„์‚ฐ
            for (int j = i; j <= n+1; j++) {
                // sum์ด n๊ณผ ๊ฐ™๋‹ค๋ฉด
                if (sum == n) {
                    // answer +1
                    answer++;
                    // ๋” ์ด์ƒ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ๋‹ค์Œ ์‹œ์ž‘ ์ˆซ์ž๋กœ
                    break;
                  // ์•„์ง n๋ณด๋‹ค ์ž‘๋‹ค๋ฉด
                } else if (sum < n) {
                    // ๋‹ค์Œ ์ˆซ์ž ๋”ํ•˜๊ธฐ
                    sum += j;
                  // n๋ณด๋‹ค ํฌ๋‹ค๋ฉด
                } else {
                    // ๋‹ค์Œ ์‹œ์ž‘ ์ˆซ์ž๋กœ
                    break;
                }
            }
        }
        
        // answer ๋ฐ˜ํ™˜
        return answer;
    }
}

๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ์ƒ๊ฐํ•œ ๋ฐฉํ–ฅ

์—ฐ์†๋˜๋Š” ์ˆซ์ž์˜ ํ•ฉ์ด n์ด ๋˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ช‡ ๊ฐœ์ธ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์—ฐ์†๋˜๋Š” ํ•ฉ์ด ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
ํ•ด๋‹นํ•  ๊ฒฝ์šฐ answer +1 ํ•ด์ค€ ํ›„ continue๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ๊ณ„์† ์‹คํ–‰ํ•œ๋‹ค.
for๋ฌธ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋‚˜?
๋‘ ๋ฒˆ์งธ for๋ฌธ์˜ ๋ฒ”์œ„๋Š” n+1๊นŒ์ง€ ํ•ด์•ผ ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋‹ค!