가이버2
개발 블로그
가이버2
전체 방문자
오늘
어제
  • 분류 전체보기 (172)
    • 교육 (115)
      • 백엔드 (14)
      • 프론트 (2)
      • 네트워크 관련 (4)
      • 데이터 관련 (3)
      • devops (3)
      • 그외 (3)
      • 알고리즘 (5)
      • 코테 (81)
    • 디버깅 (3)
      • 스프링 Data JPA (3)
      • JAVA (0)
    • 개발 편의 (8)
    • 기계 (25)
      • NAS (10)
      • ROUTER (0)
      • 맥북 (15)
    • 소프트웨어 (17)
      • WIN (4)
      • MAC (13)
      • LINUX (0)
    • 생활 (0)
      • 구매 (0)
      • 오월이 (0)
    • 링크 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • naelonambul 개발 블로그 입니다.

인기 글

태그

  • 프로그래머스
  • M4
  • 인프런
  • 윈도우
  • 가상화
  • WSL
  • intellij
  • 맥미니
  • 맥북
  • Java
  • 시놀로지
  • M1
  • 스프링
  • ARM
  • Spring
  • JS
  • 코딩테스트
  • SSD
  • 맥
  • SQL

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
가이버2

개발 블로그

교육/알고리즘

[JAVA] Backtracking

2022. 8. 3. 16:16
package algo.BackTracking;

public class BackTracking {
    public static void main(String[] args){
        int n,m;
        int arr[] = new int[10];
        Boolean isused[] = new Boolean[10];
        n = 10;  //n까지의 자연수
        m = 0;   //m개
        func(0,n, m, arr, isused);
    }

    public static void func(int k, int n, int m, int[] arr, Boolean[] isused){ // 현재 k개까지 수를 택했음.
        if(k==m){            // m개를 모두 택했으면
            for(int i=0; i<m; i++){
                stdOut(arr[i]+" "); // arr에 기록해둔 수를 출력
            }
            stdOut("\n");
        }

        for(int i=1;i<=n; i++){ // 1부터 n까지 수에 대해
            if(!isused[i]){     // 아직 i가 사용되지 않았으면
                arr[k]=i;       // k번째 수를 i로 정함
                isused[i]=true; // i를 사용되었다고 표시
                func(k+1, n, m, arr, isused);      // 다음 수를 정하러 한 단계 더 들어감
                isused[i]=false;// k번째 수를 i로 정한 모든 경우에 대해 다 확인했으니 i를 이제 사용되지 않았다고 명시함.
            }
        }
    }

    public static void stdOut(String str){
        System.out.println(str);
    }
}

출처 : https://blog.encrypted.gg/945?category=773649 

 

[실전 알고리즘] 0x0C강 - 백트래킹

이번에는 백트래킹을 배워보도록 하겠습니다. 백트래킹도 재귀와 더불어 많은 사람들이 고통을 호소하는 알고리즘 중 하나이지만 의외로 그 재귀적인 구조에 매료되어서 참재미를 알아버리는

blog.encrypted.gg

 

'교육 > 알고리즘' 카테고리의 다른 글

[JAVA] Greedy  (0) 2022.08.03
[JAVA] DP  (0) 2022.08.03
[JAVA] BFS  (0) 2022.08.03
[JAVA] DFS  (0) 2022.08.03
    '교육/알고리즘' 카테고리의 다른 글
    • [JAVA] Greedy
    • [JAVA] DP
    • [JAVA] BFS
    • [JAVA] DFS
    가이버2
    가이버2
    개인 개발 블로그 입니다.

    티스토리툴바