[오늘의 코테연습장] - 백준 10829번

Mini_me·2022년 1월 24일
0

공부[코테연습장]

목록 보기
3/36

문제


문제 해결 과정

이 문제는 재귀 함수호출을 이용하여 구현하였다.

재귀함수란

자신이 수행할 작업을 유사한 형태의 여러 조각으로 쪼갠 두 ㅣ그 중 한조각을 수행하고, 나머지를 자기 자신을 호출해 실행하는 함수를 가르킨다.

이 문제에서의 재귀함수는 Binary() 함수로 구현하였다.

N을 이진수로 바꾸는 작업을 N개의 조각으로 쪼개, 이진수를 구성하는 각 숫자가 하나의 조각이 되도록 한다.

만약 N이 1보다 작을 경우 2로 나눌 수 없기 때문에 종료하고,

그 외의 경우 재귀함수(자기자신)을 호출한다. 이때 재귀함수에는 N을 2로 나눈 N/2값이 들어가야 한다.

그리고나서 출력값으로는 N을 2로 나눈 나머지를 출력한다.

메인 함수에서는 Binary()함수를 호출하여 이진수가 출력되도록 한다.

이렇게 A,B값의 규칙성을 찾았고 이를 수식으로 표현하여 코드를 구현하였다

import java.util.Scanner;

public class Main{

    private static void Binary(long N) {
        if(N<=1)
        {  System.out.print(N);
            return;}
         Binary(N/2);
        System.out.print(N%2);
    }
    public static void main(String[] args) throws Exception{

        Scanner scan = new Scanner(System.in);
        long N = scan.nextLong();
        Binary(N);
        scan.close();
    }
    }

회고

작년 알고리즘 수업 때, 재귀함수를 거의 초반부분에 배워서 계속해서 써먹었던 것이 재귀함수였다.

이 문제는 재귀함수를 기초적으로 활용할 수 있는 문제여서 쉽게 풀 수 있었다.

0개의 댓글

관련 채용 정보