<답안>
#include <iostream>
using namespace std;
int main() {
int n;
int i = 0;
int result = 1;
int temp = 0;
cin>>n;
temp = n-1;
if(n == 0)
cout<<1;
else
{
while(temp > 0)
{
result++;
i++;
temp -= 6*i;
}
cout<<result;
}
return 0;
}
<설명>
쭉 나열을 하여 규칙을 먼저 찾아보았다
입력된 n-1값을 토대로
0 : 1
1~6 : 2 (6가지)
7~18 : 3 식이다 (12가지)
즉, 입력된 숫자를 -6, -12, -18... 식으로 6의 배수만큼 빼보며 증가된 result 무언가를 구하면 되는 식이였다
찾은 규칙은 n-1값을 temp에 저장한 다음, result는 1부터, i는 0부터 시작하여
temp값을 차례로 6, 12, 18을 빼보며 result도 같이 증가시킨다
temp값이 0보다 큰 경우에만 반복하며 구해진 result를 출력시킨다
'백준 > 백준 단계별 문제풀이' 카테고리의 다른 글
백준 2869번 (C++) (0) | 2020.08.25 |
---|---|
백준 1193번 (C++) (0) | 2020.08.23 |
백준 2839번 (C++) (0) | 2020.08.23 |
백준 1712번 (C++) (0) | 2020.08.23 |
백준 1316번 (C++) (0) | 2020.08.23 |