인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다.
문제는 비공개로 입력예제와 출력예제만을 가지고 포스팅
입력예제 1
11
출력예제 1
1011
풀이
- 재귀함수는 무조건 탈출 조건이 있어야함 if(){ return }else{ }형태로 틀을 잡음
- 아래 표를 스택으로 생각하면 계속 나누어서 recur(0)까지 간 뒤 나머지를 출력해주면 된다
recur(0) => return | |
recur(1) | printf(1%2) => 1 |
recur(2) | printf(2%2) => 0 |
recur(5) | printf(5%2) => 1 |
recur(11) | printf(11%2) => 1 |
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <stack>
using namespace std;
//57. 재귀함수 이진수 출력
void recur(int x){
if(x==0){ return; }
else {
recur(x/2);
printf("%d", x%2);
}
}
int main(){
int n;
scanf("%d", &n);
recur(n);
return 0;
}
'알고리즘' 카테고리의 다른 글
60. 합이 같은 부분집합[DFS] (0) | 2021.01.11 |
---|---|
59. 부분집합 [DFS] (0) | 2021.01.08 |
56. 재귀함수 분석[stack 활용] (0) | 2021.01.06 |
55. 기차운행[stack 활용] (0) | 2021.01.05 |
54. 올바른 괄호[stack 활용] (0) | 2021.01.04 |