[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ˆซ์ž์˜ ํ‘œํ˜„ /ํŒŒ์ด์ฌ /Python
Algorithm/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ˆซ์ž์˜ ํ‘œํ˜„ /ํŒŒ์ด์ฌ /Python

728x90
๋ฐ˜์‘ํ˜•

 

๐Ÿ’กsolutions )

๐Ÿ’ฌ n์ด ์ฃผ์–ด์ง„ ๊ฒฝ์šฐ n//2๊นŒ์ง€๋งŒ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค. ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ์˜ˆ์‹œ์ฒ˜๋Ÿผ n์ด 15์ธ ๊ฒฝ์šฐ์— 7๊นŒ์ง€๋งŒ ์—ฐ์†๋œ ์ˆซ์ž๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , 8์ธ ๊ฒฝ์šฐ๋Š” ๊ทธ ๋‹ค์Œ ์ˆซ์ž๋ฅผ ๋”ํ•˜๋ฉด 15๋ฅผ ์ดˆ๊ณผํ•˜๋ฏ€๋กœ ๋ถˆํฌํ•จ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ™•์ธํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

๐Ÿ’ฌ ์ˆซ์ž n ํ•˜๋‚˜๋„ ๊ฒฝ์šฐ์˜ ์ˆ˜์— ํฌํ•จ๋˜๋ฏ€๋กœ answer์€ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

 

๐ŸŽซcode )

def solution(n):
    answer = 1
    for i in range(1, n//2+1):
        tmp = 0
        for j in range(i, n//2+2):
            tmp += j
            if tmp > n:
                break
            if tmp == n:
                answer += 1
                break
    return answer

 

๐Ÿ“Œ description )

๋ฌธ์ œ์ถœ์ฒ˜ : programmers.co.kr/learn/courses/30/lessons/12924?language=python3

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ˆซ์ž์˜ ํ‘œํ˜„

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

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 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

 

๋ฐ˜์‘ํ˜•