반응형
출력
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.
예제 입력 1 복사
3 4 7 10
예제 출력 1 복사
7 44 274
#include <iostream>
#include <queue>
using namespace std;
void bfs(int n, int lev)
{
queue <int> que;
que.push(lev);
int now;
int cnt = 0;
while (1)
{
if (que.empty())
break;
now = que.front();
que.pop();
if (now == n)
{
cnt++;
}
if (now + 1 <= n)
que.push(now + 1);
if (now + 2 <= n)
que.push(now + 2);
if (now + 3 <= n)
que.push(now + 3);
}
cout << cnt <<"\n";
}
int main(void)
{
int n, a;
cin >> n;
for (int i = 0; i < n;i++)
{
cin >> a;
bfs(a, 0);
}
}
한번에 통과!
그 전전문제랑 똑같이 bfs로 품
반응형
'C언어' 카테고리의 다른 글
프롬프트 경로 짧게하는 법 : bashrc PS1옵션 수정 (0) | 2020.09.29 |
---|---|
singular linked list (0) | 2020.08.29 |
백준 15990번 1, 2, 3, 더하기 5 (0) | 2020.08.28 |
백준 11052번 : 카드 구매하기 bfs -> 최적 dp배열 (0) | 2020.08.21 |
백준 11726번 2*n 타일링 bfs => 피보나치로 풀기 (0) | 2020.08.21 |
백준 1463번 : 1로 만들기 : bfs로 풀었다. (0) | 2020.08.21 |
백준 1676번 팩토리얼 0의 개수 (0) | 2020.08.19 |
백준 10872번 팩토리얼 : while문을 이용한 팩토리얼 계산 (0) | 2020.08.19 |