๐Ÿ—๏ธ Algorithm/โฌ› ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Programmers] [์—ฐ์Šต๋ฌธ์ œ] [Python] Level2_์ˆซ์ž์˜ ํ‘œํ˜„

Dbswnstjd 2022. 10. 9. 19:01

๋ฌธ์ œ

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

 

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

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

ํ’€์ด

# ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ์ˆซ์ž์˜ ํ‘œํ˜„
def solution(n):
    answer = 0 
    for i in range(1, n+1):
        sum = 0
        for j in range(i, n+1):
            sum += j
            if sum == n:
                answer += 1
                break
            elif sum > n :
                break
    return answer

2์ค‘ for๋ฌธ์„ ํ†ตํ•ด์„œ ์ฒซ๋ฒˆ์งธ for๋ฌธ์—์„œ๋Š” 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ n๊นŒ์ง€ for๋ฌธ์ด ๋Œ๊ฒŒ ๋˜๊ณ  ๋‘๋ฒˆ์งธ ์žˆ๋Š” for๋ฌธ์—์„œ๋Š” i๋ถ€ํ„ฐ n๊นŒ์ง€ ๋Œ๊ฒŒ ๋œ๋‹ค. ๋‘๋ฒˆ์งธ for๋ฌธ ์•ˆ์—์„œ sum ์ด n๊ณผ ๊ฐ™๋‹ค๋ฉด sum = n ์„ ๋งŒ์กฑํ•˜๋Š” ๊ฐฏ์ˆ˜๋ฅผ ํ•˜๋‚˜ ๋”ํ•ด์ฃผ๊ณ  sum์ด n๋ณด๋‹ค ํฌ๋‹ค๋ฉด ๊ทธ ์ˆซ์ž๋Š” ๋”์ด์ƒ sum = n์„ ๋งŒ์กฑํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋‘๋ฒˆ์จฐ์— ์žˆ๋Š” for๋ฌธ์„ ํƒˆ์ถœํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค.  

1. 1+2+3+4+5 = 15 (o)
2. 2+3+4+5+6 > 15 (x)
3. 3+4+5+6 > 15 (x)
4. 4+5+6 = 15 (o)
5. 5+6+7 > 15 (x)
.
.
.

 

๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ํ’€์ด

๋‚˜์˜ ํ’€์ด์™€๋Š” ๋‹ฌ๋ฆฌ ์‹œ๊ฐ„๋„ ํ›จ์”ฌ ๋น ๋ฅธ ์ฝ”๋“œ์ด๊ณ  ์ด๋Ÿฌํ•œ ์ˆ˜ํ•™์  ์ ‘๊ทผ์„ ํ†ตํ•ด ๊ณต์‹์„ ์–ป์–ด๋‚ด๊ณ  ๋” ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ์ง€๋งŒ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ•˜์˜€๋‹ค. ๋ณด๊ณ  ๋‚˜๋ฉด ์•Œ์ง€๋งŒ ๋ณด๊ธฐ ์ „์—๋Š” ๊ธฐ์–ต๋„ ์•ˆ๋‚˜๋Š”๊ฒŒ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์ธ ๊ฒƒ ๊ฐ™๋‹ค.. ์กฐ๊ธˆ ๋” ๋ฌธ์ œ๋ฅผ ํ’€๋•Œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์ƒ๊ฐํ•˜๊ณ  ์—ฌ๋Ÿฌ๋ฐฉ๋ฉด์œผ๋กœ ์ ‘๊ทผ์„ ํ•ด๋ด์•ผ ๊ฒ ๋‹ค. 

์ถœ์ฒ˜ - https://velog.io/@younge/Python-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%88%AB%EC%9E%90%EC%9D%98-%ED%91%9C%ED%98%84-%EC%97%B0%EC%8A%B5%EB%AC%B8%EC%A0%9CLevel-2