반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 주식
- 백준
- 상한가 이유
- 급등주
- 프로그래머스
- 테마주
- 상한가 분석
- Python
- 손경제
- 경제
- 경제뉴스 요약
- 상한가
- 코테
- boj
- 손에 잡히는 경제 요약
- 이진우의 손에 잡히는 경제
- 주식 상한가
- 알고리즘
- 급등주 분석
- 경제뉴스
- Programmers
- 이진우
- java
- 급등 이유
- 자바
- 파이썬
- 손경제 요약
- 손에 잡히는 경제
- 코딩테스트
- 주식 분석
Archives
- Today
- Total
Completion over Perfection
프로그래머스 - 약수의 합 (파이썬3 Python3) 본문
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12928
아래 두가지를 해결하면 됩니다.
① 주어진 n에 대해서 약수 리스트를 전부 구하고,
② 그 리스트의 값을 전부 더해주면 됩니다.
저는 나눠줄 값을 div로 선언한 뒤 1을 넣어주고 while문을 돌렸습니다.
n을 div값으로 나눴을 때 0이 된다면 그 div값이 약수가 되기 때문에 이를 전부 더해줄 리스트 candidate에 넣어줍니다.
모든 계산이 끝난 후 candidate 안에 들어있는 요소들을 하나씩 꺼내주면서 answer에 더해주면 정답이 됩니다.
다만 주의해야할 점은 n이 16으로 주어졌을 때 약수는 4가 들어가게 되는데, 4를 2번 더하면 안된다는 것이죠.
아래 반례를 한번 코드에 넣어서 실행해보세요.
반례1> n이 16일 경우
입력 : 16
정답출력 : 31
반례2> n이 1일 경우
입력 : 1
정답출력 : 1
def solution(n):
answer = 0
div = 1
if n == 1:
return 1
candidate = []
while div < n:
if n%div==0:
if div not in candidate:
candidate.append(div) # 1 2 3
if n//div not in candidate:
candidate.append(n//div) # 12 6 4
else:
break
div += 1
# print(candidate)
for num in candidate:
answer += num
# print(answer)
return answer
반응형
'파이썬 (Python)' 카테고리의 다른 글
프로그래머스 - 자연수 뒤집어 배열로 만들기 (파이썬3 Python3) (0) | 2023.08.31 |
---|---|
프로그래머스 - 자릿수 더하기 (파이썬3 Python3) (0) | 2023.08.30 |
프로그래머스 - x만큼 간격이 있는 n개의 숫자 (파이썬3 Python3) (1) | 2023.08.28 |
프로그래머스 - 짝수와 홀수 (파이썬3 Python3) (0) | 2023.08.27 |
프로그래머스 - 신고 결과 받기 (파이썬3 Python3) (0) | 2023.08.26 |
Comments