20. 약수의 합

2020. 9. 10. 22:15·알고리즘_코딩테스트/프로그래머스_Level1

0. 문제

링크) https://programmers.co.kr/learn/courses/30/lessons/12928

 

코딩테스트 연습 - 약수의 합

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수

programmers.co.kr


1. 알고리즘 계획

  1. for문을 돌면서 입력변수와 나누어 떨어지는 변수들로 리스트를 만든다. (리스트 컴프리핸션 이용)
  2. 리스트의 값을 모두 더한다 (sum함수 이용)


2. 나의 코드

def solution(n):
    answer = 0
    ls = [idx for idx in range(1, n+1) if n % idx == 0]
    answer = sum(ls)
    return answer


3. 다른 사람의 코드

def solution2(num):
    # num / 2 의 수들만 검사하면 성능 약 2배 향상
    return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0])

- num/2의 수들만 for문을 돌게함으로써 성능의 약 2배를 향상시킬 수 있다.

- 만약 12의 경우 1, 2, 3, 6, 12이기에, 1, 2, 3, 6까지만 for문을 돌고, 나중에 num의 값을 더해주는 방식으로 계산


4. 정리 및 리뷰

- 이 문제 또한 파이썬 수업을 들으면서 처음쯤 시도했었던 문제였다.

- answer에 값을 대입한다거나 하지 않고, 바로 return을 시켜주면 조금 더 코드를 직관적으로 볼 수 있게 할 수 있다는 것을 알았다. 


코드 만족도: ★★★★★


'알고리즘_코딩테스트 > 프로그래머스_Level1' 카테고리의 다른 글

22. 자릿수 더하기  (0) 2020.09.11
21. 이상한 문자 만들기  (0) 2020.09.11
19. 시저암호  (0) 2020.09.10
18. 문자열을 정수로 바꾸기  (1) 2020.09.10
17. 수박수박수박수박수박수?  (0) 2020.09.10
'알고리즘_코딩테스트/프로그래머스_Level1' 카테고리의 다른 글
  • 22. 자릿수 더하기
  • 21. 이상한 문자 만들기
  • 19. 시저암호
  • 18. 문자열을 정수로 바꾸기
논곰
논곰
현재 2년 유목하고, 3년 이상 리테일 쪽에서 머신러닝 엔지니어로 잠시 정착 중인 AI 엔지니어입니다.
  • 논곰
    에이아이 유목민
    논곰
  • 전체
    오늘
    어제
    • 분류 전체보기 (200)
      • 기술 견문록 (22)
        • MLOps (8)
        • ProductServing (5)
        • 협업 툴 (3)
        • Error Collecting (2)
        • 컨퍼런스 (1)
        • 자격증 (1)
      • IT 견문록 (10)
        • 추가 학습 정리 (10)
      • 알고리즘_코딩테스트 (162)
        • 프로그래머스_Level1 (40)
        • 백준코딩테스트_단계별문제풀이 (14)
        • 이것이 코딩테스트다 (63)
        • 2021_알고리즘 스터디 (30일) (28)
        • 주간코딩 스터디 (주코스) (17)
      • 독서 견문록 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Level2_PStage
    mrc
    python3
    부스트캠프_AITech3기
    글또
    정렬
    MLFlow
    이진탐색
    ODQA
    구현
    최단경로
    dp
    부스트캠프_AITech_3기
    백준
    그리디
    백트랙킹
    Level2
    기술면접
    파이썬 3
    주간회고
    Level1
    단계별문제풀이
    U_stage
    그래프이론
    알고리즘스터디
    다시보기
    dfs
    이코테
    프로그래머스
    알고리즘_스터디
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
논곰
20. 약수의 합
상단으로

티스토리툴바