Posts [알고리즘] 프로그래머스 - 숫자의 표현
Post
Cancel

[알고리즘] 프로그래머스 - 숫자의 표현


문제

숫자의 표현


접근

start = 1와 end = 1를 이용한다.

  1. end부터 숫자를 더해나가며 n보다 같거나 커지게 만든다.
  2. n과 같다면 경우의 수를 한개 더한다.
  3. start부터 숫자를 하나씩 빼며 n보다 같거나 작아지게 만든다.
  4. n과 같다면 경우의 수를 한개 더한다.
  5. 다시 1로 돌아간다.


코드

  • 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def solution(n):
    answer = 0
    start = 1
    end = 1
    now = 0
    while start < n:
        while now <= n:
            now += end
            end += 1
            if now == n:
                print(start, end)
                answer += 1
                break
        while now >= n:
            now -= start
            start += 1   
            if now == n:
                print(start, end)
                answer += 1
                break
    return answer
  • C++ 코드
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
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;
    int start = 1, end = 1;
    int now = 0;
    while(start<n){
        while(now<=n){
            now += end;
            end++;
            if(now==n){
                answer++;
                break;
            }
        }
        while(now>=n){
            now -= start;
            start++;
            if(now==n){
                answer++;
                break;
            }
        }
    }
    return answer;
}


This post is licensed under CC BY 4.0 by the author.

[알고리즘] 프로그래머스 - 구명보트

[알고리즘] 프로그래머스 - 예상 대진표