C언어
백준 9095번 1, 2, 3 더하기 bfs로 한방에 통과!
mcdn
2020. 8. 21. 15:30
반응형
출력
각 테스트 케이스마다, 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로 품
반응형