본문 바로가기

알고리즘/인프런

섹션 7. Recursive, Tree, Graph(DFS, BFS 기초) 2. 이진수 출력(재귀)

문제

  • 10진수 N이 입력되면 2진수로 변환하여 출력하는 프로그램을 작성하세요. 단 재귀함수를 이용해서 출력해야 합니다.

입력

  • 첫 번째 줄에 1진수 N(1<=N<=1,000)이 주어집니다.

출력

  • 첫 번째 줄에 이진수를 출력하세요.

입출력 예제


풀이방식

이번 문제는 재귀함수를(을) 사용하여 푸는 문제이다.

재귀함수란 자기가 자기 자신을 호출하는 함수이며, 스택 프레임을 사용한다.


풀이과정

1. 이진수는 자연수를 2로 나눈 나머지를 거꾸로 작성한 값이다.

 

2. 메인에서 DFS 함수에 11이라는 값을 넣는다.

 

3. 이 11은 N에 들어가는 값이다.

 

4. if - else 를 통해 재귀함수 로직을 작성한다.

 

5. N이 0이 되면 바로 리턴한다.

 

6. 0이 아니라면 N을 2로 나눈 나머지를 출력한다.

 

7. 그 후에 N을 2로 나눈 몫을 다시 N에 저장하여 호출하는 것으로 재귀함수를 호출하여 반복한다.

  • 11을 예시로 들어서 아래 이미지를 통해 확인해보자.


더 자세한 설명은 아래 글을 참조해서 확인해보기 바랍니다.

섹션 7. Recursive, Tree, Graph(DFS, BFS 기초) 6. 부분집합 구하기(DFS)


해당 글은 인프런 > 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비(김태원)강의를 참고하여 작성하였습니다.