◎ 문제
○ 출처
https://programmers.co.kr/learn/courses/30/lessons/12928
○ 문제 설명
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. |
○ 제한 사항
|
○ 입출력 예
![]() |
○ 입출력 예 설명
입출력 예 #1 입출력 예 #2 |
○ 작성 예시 코드
public class Solution {
public int solution(int n) {
int answer = 0;
return answer;
}
}
◎ 나의 문제 풀이
using System.Collections.Generic;
using System.Linq;
public class Solution
{
public int solution(int n)
{
// 1일 경우 바로 리턴
if (n == 1)
{
return 1;
}
int answer = 0;
List<int> num_list = new List<int>();
// 나눈 몫을 저장할 변수
int quotient = n;
for(int i = 1; i < quotient; ++i)
{
// 나누어 떨어지는 경우
if(n % i == 0)
{
// 나눈 몫과 함께 리스트 추가
quotient = n / i;
num_list.Add(i);
// 64를 나눌때 8 * 8과 같은 케이스를 방지하기 위한 조건문
if(i != quotient)
{
num_list.Add(quotient);
}
}
}
answer = num_list.Sum();
return answer;
}
}
'프로그래밍 문제 풀이 > C#' 카테고리의 다른 글
[프로그래밍 문제 풀이] 프로그래머스 - 핸드폰 번호 가리기 (C#) (0) | 2020.07.18 |
---|---|
[프로그래밍 문제 풀이] 프로그래머스 - x만큼 간격이 있는 n개의 숫자 (C#) (0) | 2020.07.17 |
[프로그래밍 문제 풀이] 프로그래머스 - 제일 작은 수 제거하기 (C#) (0) | 2020.07.16 |
[프로그래밍 문제 풀이] 프로그래머스 - 자연수 뒤집어 배열로 만들기 (C#) (0) | 2020.07.16 |
[프로그래밍 문제 풀이] 프로그래머스 - 정수 내림차순으로 배치하기 (C#) (0) | 2020.07.16 |