일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 자바
- String.valueOf()
- 프로그래머스
- 백준
- 코드스테이츠 백엔드
- 백준 11659
- List.of
- 코드스테이츠
- Spring MVC 동작원리
- 재귀와반복문
- vm인스턴스생성
- 클라우드에서 도커 실행하기
- 구간합구하기
- Spring Web MVC
- 스택
- 11659
- 인텔리제이
- 재귀함수
- MySQL
- Array.asList
- Spring MVC 구성요소
- 싱글톤패턴
- GCP
- 버블정렬
- 성능테스트툴
- 투포인터알고리즘
- java
- OOP
- 코딩테스트
- 알고리즘
- Today
- Total
목록재귀함수 (2)
순간을 기록으로
개요 알고리즘 문제를 풀다 보면 반복적인 규칙이 있는 문제가 있습니다. 이런 문제들은 재귀 함수를 이용해서 풀 수도 있고, 반복문을 이용해서 풀 수 있습니다. 대표적인 문제가 팩토리얼 문제입니다. 입력으로 순서가 주어지면 팩토리얼 값을 구하는 방법은 다음과 같이 재귀함수를 이용해서 풀 수 있고 반복문을 이용해서 풀 수 있습니다. 팩토리얼 문제를 푸는 2가지 방법 - 재귀, 반복문 public class Solution { public static int factorialUsingRecursion(int num) {// 재귀 if (num == 0) return 1; else return num * factorialUsingRecursion(num - 1); } public static int factor..
느낀 점 재귀함수란 함수 안에서 자시 자신을 호출하는 함수를 말한다. 이렇게 함수가 자기 자신을 호출하게 되면 끊임 없이 호출이 계속되는데 이렇게 되면 스택오버플로우가 발생하게된다. 따라서 재귀함수는 반드시 1.탈출 조건 2. 자신 호출이 있어야한다. 보통 구조는 다음과 같이 if-else 구조를 가진다. public void function(int n) { if(탈출 조건){ return; } else { function(n-1); } } public class Main { public void DFS(int n) { if (n == 0){ return; } else { DFS(n/2); System.out.print(n%2); } } public static void main(String[] args..