#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 += j;
if(sum == n)
{
answer++;
break;
}
else if(sum > n)
{
break;
}
}
}
return answer;
}
풀이
1. 이중 for문으로 i ~ j가 n과 같은지를 확인하고 추가해준다.
2. 더한 값이 n을 넘어가면 계산할 필요없으니 break해준다. 만약 그냥 두게되면 쓸데없는 계산일뿐더러 효율성 테스트에서 실패하게된다.
느낀점
사소한 계산을 놓쳐 효율성테스트에서 실패했는데, 순간 dp로 풀어야 되나 생각했다. 웬만한 것들은 계산의 불필요한 것을 잘 생각해서 코딩해야겠다.
https://school.programmers.co.kr/learn/courses/30/lessons/12924
'Algorithm > Programmers' 카테고리의 다른 글
[C++] 프로그래머스 최고의 집합 (0) | 2024.02.29 |
---|---|
[C++] 프로그래머스 야근 지수 (0) | 2024.02.29 |
[C++] 프로그래머스 [PCCP 기출문제] 2번 / 석유 시추 (0) | 2024.02.16 |
[C++] 프로그래머스 올바른괄호 (1) | 2024.02.15 |
[C++] 프로그래머스 최솟값 만들기 (1) | 2024.02.15 |