9095 - 1,2,3 더하기 - 완전탐색
문제
https://www.acmicpc.net/problem/9095
풀이전략
- 1, 2, 3 으로만 표현해야 한다.
- 1+3 과 3+1 은 다른 케이스이다.
- 아무리 많은 계산을 한다고 하더라도 n의 최대값은 10이기 때문에 timecomplexity는 충분하다
코드
int n, c;
int cnt = 0;
void DFS(int num){
/// num ==0 이라면 원하는 케이스를 찾은 것이므로 cnt를 더해준다
if(num == 0){
cnt++;
return;
}
else{
// 1, 2, 3 으로 표현가능한지 보기
// 지금보니 num-1이 어차피 불가하다면 그 밑에는 할필요가 없게끔 짜도 됨
if(num - 1 >= 0){
DFS(num-1);
}
if(num - 2 >= 0){
DFS(num-2);
}
if(num - 3 >= 0){
DFS(num-3);
}
}
}
int main(){
ios_base::sync_with_stdio(false);
cin >> c;
for(int k=0; k<c; k++){
cin >> n;
cnt = 0;
DFS(n);
cout<<cnt<<endl;
}
return 0;
}
소감
Author And Source
이 문제에 관하여(9095 - 1,2,3 더하기 - 완전탐색), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gomster_96/백준-9095-123-더하기-완전탐색저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)