Save my data

백준 9506 : 약수들의 합 (파이썬) 본문

알고리즘/백준

백준 9506 : 약수들의 합 (파이썬)

양을 좋아하는 문씨 2023. 3. 12. 01:11

요구하는 대로만 구현하면 답인 구현 문제였다.


import sys
def gen(n, arr):
    if sum(arr) == n:
        print(f"{n} =", " + ".join(map(str, arr)))
    else:
        print(f"{n} is NOT perfect.")

while 1:
    factors = []
    N = int(sys.stdin.readline())
    if N == -1:
        break
    for i in range(1, (N // 2) + 1):
        if not N % i:
            factors.append(i)
    gen(N, factors)

며칠동안 쉬운 문제만 풀면서 포스팅 했는데 다음주부터는 다시 그래프 문제를 풀어야겠다.

사실 백준 14502 연구소 문제에서 막혀서 구글링했는데, 보니까 백트래킹이라는 기법이 사용되는 문제였다.

배우다보니 끝이 없어서 잠깐 알고리즘 풀이 템포를 늦춘 상태이고, 그러는 동안 파이썬 클래스 심화이론(프로퍼티, 디스크립터 등)을 학습하면서 그에 대한 포스팅을 준비중인데, 프로퍼티와 연계되는 디스크립터 부분이 내 수준에서는 상당히 어려운 관계로 디스크립터 포스팅이 늦어지고 있는 상황이다.

연구소 문제를 풀려고 하니 대충 흐름은 알겠는데 탐색 조건 설정해주는 부분이 또 브루트 포스였고...(브루트포스 너무 싫다)

아무튼 일요일 지나고 슬슬 sqld 준비하면서 알고리즘 문제들을 다시 골드 수준에서 풀어야겠다.

Comments