On the journey of
[프로그래머스 Python 2,3] 약수의 합, x만큼 간격이 있는 n개 숫자 본문
1. 약수의 합 : 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한사항 - 단, n은 0 이상 3000 이하인 정수입니다.
ALG - 약수는 크게 2가지 성질이 있다. 정수 n의 약수라고 하면,
- 1 이상 n 이하 (ex. n이 12인데 약수가 12보다 큰 24일 수는 없으니)이다.
- n을 약수로 나눴을 때, 나머지가 0이다.
SOL - 함수는 정해진 범위(range) 내에서, 1부터 n까지 반복문을 통해 loop하면서 나머지를 도출한다. 그리고 나머지가 0인 인자들을 answer이라는 변수에다 추가하면 된다. answer은 0(default)으로 설정해놓고 시작한다.
그리고 결과는 무난히 성공 :)
2. x만큼 간격이 있는 n개의 숫자 : 함수 solution은 정수 x와 자연수 n을 입력받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다.
제한조건 - x는 -10,000,000 이상 10,000,000 이하인 정수이며 n은 1000 이하인 자연수입니다.
[ 입출력예시 ]
x | n | answer |
2 | 5 | [2,4,6,8,10] |
4 | 3 | [4,8,12] |
-4 | 2 | [-4,-8] |
ALG - 알고리즘보다는 파이썬에서의 Range 기능을 상기해보자.
Range(start, stop, step) 순서로, start에서 시작해 step(등차수열에서의 공차) 간격으로 stop까지 진행한다는 의미.
SOL - 이러한 Range를 사용해 입력받은 x(start)부터 시작해, step도 x인 리스트를 작성하면 된다.
* 또한, 해당사항이 없는 숫자들(ex. 출력예시에서 7은 [2,4,6,8,10]에 들어갈 일이 없음) 은 추가되지 않게끔, else 조건을 활용한다.
가뿐히 성공 :)
'코딩테스트 > Python' 카테고리의 다른 글
[프로그래머스] 베스트앨범, 구명보트(해시, 탐욕 알고리즘) (0) | 2023.08.27 |
---|---|
[프로그래머스] 파이썬 최댓값과 최솟값, JadenCase 문자열 만들기 (1) | 2023.08.12 |
[프로그래머스 Python 2,3] 자연수 뒤집어 배열로 만들기, 정수 제곱근 판별 (0) | 2023.05.02 |
[Python] 프로그래머스 2문제 풀어보기(문자열 나누기, 옹알이2) (0) | 2023.04.27 |
[프로그래머스 Python 2,3] 짝수와 홀수, 평균 구하기 (0) | 2023.04.25 |