프로그래머스의 숫자의 표현(Lv2) 문제이다.
[ 문제풀이 ]
연속한 자연수들로 숫자를 표현할 수 있는 경우의 수를 구해야 하는 문제이다.
본인은 가장 간단하게 생각해 볼 수 있는 2중 for문을 통해서 구현해 보았다.
2중 for문을 사용한 이유는, 첫 번째 for문은 시작숫자를 결정하는 for문이고, 두 번째 for문은 해당 시작숫자부터
연속된 숫자들을 합쳐나가면서 계산을 했을 때, N이 나오는지 판단해주기 위한 for문이다.
코드 자체가 간단하니 별다른 설명보다는 소스코드로 대체하겠다.
[ 소스코드 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include<string> #include<vector> using namespace std; int solution(int n) { int answer = 0; for(int i = 1; i <= n; i++) { int Sum = 0; for (int j = i; j <= n; j++) { Sum = Sum + j; if (Sum == n) { answer++; break; } else if (Sum > n) break; } } return answer; } | cs |
'[ Programmers Code ] > # PG - Level2' 카테고리의 다른 글
[ 프로그래머스 땅따먹기 (Lv2) ] (C++) (0) | 2020.04.28 |
---|---|
[ 프로그래머스 튜플 (Lv2) ] (C++) (0) | 2020.04.24 |
[ 프래그래머스 다음 큰 숫자 (Lv2) ] (C++) (0) | 2020.04.19 |
[ 프로그래머스 올바른 괄호 (Lv2) ] (C++) (0) | 2020.04.19 |
[ 프로그래머스 위장 (Lv2) ] (C++) (0) | 2020.03.05 |