λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
4️⃣ Python/Problem Solving

[Python Algorithm] 숫자의 ν‘œν˜„ Programmers(Lv.2)

by seolhee2750 2021. 11. 22.
문제

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

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - 숫자의 ν‘œν˜„

Finn은 μš”μ¦˜ μˆ˜ν•™κ³΅λΆ€μ— λΉ μ Έ μžˆμŠ΅λ‹ˆλ‹€. μˆ˜ν•™ 곡뢀λ₯Ό ν•˜λ˜ Finn은 μžμ—°μˆ˜ n을 μ—°μ†ν•œ μžμ—°μˆ˜λ“€λ‘œ ν‘œν˜„ ν•˜λŠ” 방법이 μ—¬λŸ¬κ°œλΌλŠ” 사싀을 μ•Œκ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 예λ₯Όλ“€μ–΄ 15λŠ” λ‹€μŒκ³Ό 같이 4κ°€μ§€λ‘œ ν‘œν˜„ ν• 

programmers.co.kr

 

λ‚΄ 문제 풀이
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

# μž…μΆœλ ₯ 예제
print(solution(15))

πŸ‘‰μ™„μ „νƒμƒ‰ 문제 !

  • 2쀑 for문을 μ΄μš©ν•˜μ—¬ 1λΆ€ν„° μˆœμ„œλŒ€λ‘œ 1μ”© λ”ν•΄μ„œ 연산을 ν•΄μ£Όκ³ ,
    μ—°μ‚°ν•œ 값이 μž…λ ₯된 nκ°’κ³Ό 같아지면 횟수 μΉ΄μš΄νŒ… ν›„ ν•˜μœ„ for문을 μ’…λ£Œν–ˆλ‹€.
  • nκ°’κ³Ό 같아지지 μ•Šκ³ , n값을 λ„˜μ–΄λ²„λ¦΄ κ²½μš°μ—λŠ” 횟수λ₯Ό 카운트 ν•˜μ§€ μ•Šκ³ 
    ν•˜μœ„ for문을 μ’…λ£Œν•΄μ£Όμ—ˆλ‹€.

 

πŸ’‘ ν”Όλ“œλ°±
  • 어렡지 μ•Šμ€ λ¬Έμ œμ˜€μ§€λ§Œ μ™„μ „ 탐색 말고도 λ‹€λ₯Έ 방법이 μžˆμ„κ±°λž€ 생각이 λ“€μ–΄μ„œ 였래 κ³ λ―Όν•˜λ‹€κ°€ κ½€ 늦게 ν’€λ¦° λ¬Έμ œμ˜€λ‹€.
    μ΄μ œμ„œμ•Ό μ’€ μ™„μ „νƒμƒ‰μœΌλ‘œ ν’€μ–΄μ•Ό ν•  상황이 μ΅ν˜€μ§€λŠ” 것 κ°™λ‹€.

λŒ“κΈ€