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

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜์™€ ๋ง์…ˆ

by carrot0911 2024. 11. 20.

๋ฌธ์ œ ์„ค๋ช…

๋‘ ์ •์ˆ˜ left์™€ right๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. left๋ถ€ํ„ฐ right๊นŒ์ง€์˜ ๋ชจ๋“  ์ˆ˜๋“ค ์ค‘์—์„œ, ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ง์ˆ˜์ธ ์ˆ˜๋Š” ๋”ํ•˜๊ณ , ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ํ™€์ˆ˜์ธ ์ˆ˜๋Š” ๋บ€ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • 1 ≤ left ≤ right ≤ 1,000

์ž…์ถœ๋ ฅ ์˜ˆ

left right result
13 17 43
24 27 52

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

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

  • ๋‹ค์Œ ํ‘œ๋Š” 13๋ถ€ํ„ฐ 17๊นŒ์ง€์˜ ์ˆ˜๋“ค์˜ ์•ฝ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ˆ˜ ์•ฝ์ˆ˜ ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜
13 1, 13 2
14 1, 2, 7, 14 4
15 1, 3, 5, 15 4
16 1, 2, 4, 8, 16 5
17 1, 17 2

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

  • ๋‹ค์Œ ํ‘œ๋Š” 24๋ถ€ํ„ฐ 27๊นŒ์ง€์˜ ์ˆ˜๋“ค์˜ ์•ฝ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ˆ˜ ์•ฝ์ˆ˜ ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜
24 1, 2, 3, 4, 6, 8, 12, 24 8
25 1, 5, 25 3
26 1, 2, 13, 26 4
27 1, 3, 9, 27 4

 

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

class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        
        
        for (int i = left; i <= right; i++) {
            int count = 0;
            for (int j = 1; j <= i; j++) {
                if (i % j == 0) {
                    count++;
                }
            }
            
            if (count % 2 == 0) {
                answer += i;
            } else {
                answer -= i;
            }
        }
        return answer;
    }
}

์ฝ”๋“œ ์„ค๋ช…

  • for (int i = left; i <= right; i++) { } : ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ณ€์ˆ˜ i๊ฐ€ left์˜ ๊ฐ’๋ถ€ํ„ฐ right์˜ ๊ฐ’๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
    • int count = 0 : ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•  ๋ณ€์ˆ˜ count๋ฅผ ์„ ์–ธ ๋ฐ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
    • for (int j = 1; j <= i; j++) { } : ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ณ€์ˆ˜ j๊ฐ€ 1๋ถ€ํ„ฐ i๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
      • if (i % j == 0) { count++ } : ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ i๊ฐ€ j๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง„๋‹ค๋ฉด count์— 1์„ ๋”ํ•œ๋‹ค.
    • if (count % 2 == 0) { answer += i } : ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ count๊ฐ€ ์ง์ˆ˜๋ผ๋ฉด answer์— i๋ฅผ ๋”ํ•œ๋‹ค.
    • else { answer -= i } : count๊ฐ€ ํ™€์ˆ˜์ด๋ฉด answer์—์„œ i๋ฅผ ๋บ€๋‹ค.