[백준] 16561번_3의 배수 C++
in Study on Coding Test
수학적 규칙을 찾아 푸는 문제
정답제출코드
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
if (a == 3 || a == 6)
{
cout << 0;
return 0;
}
int num = 1;
int stack = 2;
// a = 9일때 1, a = 12일때 3, a = 15일 때 6...
for (int i = 9; i < a; i = i + 3)
{
num += stack;
stack++;
}
cout << num;
return 0;
}
DP인줄 알았는데 수학적 규칙이 있었다.
수학적 규칙은 주석에 달아놓은대로 9일때 1, 12일 때 3, 15일 때 6.. 이런식으로
2 3 4 5 … 차이를 벌리면서 증가하는 규칙이 있다.
이를 찾아서 코딩을 해주면 해결. 그래서 티어도 낮은 문제였는데 삽질했다..