ALGORITHM/PROGRAMMERS

[프로그래머스] 숫자의 표현

0298 2021. 7. 24. 22:06

https://programmers.co.kr/learn/courses/30/lessons/12924

 

코딩테스트 연습 - 숫자의 표현

Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할

programmers.co.kr

2021-07-24


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
    public int solution(int n) {
        int answer = 0;
        
        for(int i = 1; i < n; i++) {
            int sum = i;
            for(int j = i+1; j < n; j++) {
                sum += j;
                if(sum == n) answer++;
                if(sum >= n) break;
            }
        }
 
        return answer+1;
    }
}
cs

#문제풀이

간단하게 이중 for문을 돌렸다.

통과 후 다른 사람의 풀이를 봤을 때 대부분의 사람들이 나와 같은 방식으로 풀었고, 어떤 분이 조금 특이한 방식으로 푼 것을 확인했다.

 

주어진 자연수를 연속된 자연수의 합으로 표현하는 방법의 수는 주어진 수의 홀수 약수의 개수와 같다 라는 정수론 정의가 있다.라는 댓글을 봤는데 신기했다. 그래서 이 방법으로도 한 번 풀어봤다. 

 

1
2
3
4
5
6
7
class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i = 1; i <= n; i++if(n % i == 0 && i % 2 != 0) answer++;
        return answer;
    }
}
cs