파이썬 알고리즘 : 약수의 합

2023년 12월 21일 알고리즘 문제풀이 문제 약수의 합 난이도 Lv.1 코드 1 2 3 4 5 6 7 8 def solution(n): answer = 0 for i in range(1,int(n**(0.5))+1): if not n%i: answer += (i+n//i) if i == n//i: answer -= i return answer 공약수는 대칭이기 때문에 절반만 반복해주었다. 단 제곱수는 똑같은 수가 2번 더해지니 해당 부분만 뺴주었다. ...

2023년 12월 21일 · 1 분 · 배준수

파이썬 알고리즘 : 바탕화면 정리

2023년 12월 19일 알고리즘 문제풀이 문제 숫자 블록 난이도 Lv.2 코드 첫 생각 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 def solution(begin, end): answer = [] for n in range(begin,end+1): if n == 1: answer.append(0) elif not n%2: answer.append(n//2) else: for i in range(3,n//2): if not n%i: answer.append(n//i) print(n,n//i) break else: answer.append(1) return answer 최대공약수와 관련된 문제라고 생각했다. 최초 0으로 설정되있는 각 숫자는 1부터 하나씩 업데이트되겠지만, 마지막으로 업데이트될 때는 최대공약수로 될 것이다. 따라서 짝수는 절반값으로 된다. 2는 1, 4는 2, 6은 3, 8은 4 가 그 예시이다. 문제는 홀수였는데.. 홀수는 2로 나눠질 수 없는 것은 확실하니 3부터 1씩 커지면서 나누어주었다. 나누어 떨이질때, 그 몫이 최대 공약수이다. 하지만 이 경우가 자기 자신 뿐이라면 그때는 소수이므로 1로 설정해줬다. ...

2023년 12월 19일 · 3 분 · 배준수