문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12924
문제 설명
자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.
문제 입출력 예)
n | result |
15 | 4 |
문제 풀이
- 연속된 자리수를 생각했기에, for문을 활용하였다.
- 이중 for문을 이용하여, 연속된 자리 수를 더해준다.
- 만약 n값보다 큰 값이 되면 break
- n값과 같은 같이면 answer ++를 해준다.
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(int n) {
int answer = 0;
for(int i=0; i<n; i++){
int sum = 0;
for(int j=i+1; j<=n; j++){
sum += j; // 1 3
if(sum == n){
answer++;
break;
}else if(sum > n)
break;
}
}
return answer;
}
리뷰
- 코드가 깔끔하지 못한다는 점이 마음에 걸렸다,,.
'알고리즘 공부 > 프로그래머스 [C++]' 카테고리의 다른 글
프로그래머스 : 짝지어 제거하기 [C++] (0) | 2022.10.27 |
---|---|
프로그래머스 : 다음 큰 숫자 [C++] (0) | 2022.10.27 |
프로그래머스 : 피보나치 수 [C++] (0) | 2022.10.27 |
프로그래머스 : 올바른 괄호 [C++] (0) | 2022.10.27 |
프로그래머스 : 중간 리뷰 (4일차) [C++] (0) | 2022.10.27 |
댓글