8. 14

바르고·2023년 8월 16일
0

이클립스 디버깅

Step Into(F5) 메소드 타고 들어가는 것
Step Over(F6) 메소드 안 타고 들어가는 것
Step Return(F7) 현재 함수 끝으로 가서 리턴 후 함수 호출부로 되돌아 감.
Resume(F8) 다음 브레이크 포인트까지 건너 띔.

F11 계속 누르면 디버깅 쌓임.
 -> 종료한 다음 다시 하세요.

Step Into(F5) 건너띄기
 window - preferences - java - debug - step filtering
 use Step filters 체크

ShowView - Variable, Expression
두 개 켜 놓고.

분할정복

분할된 부분 -> 동일 부분 처리

# 가짜동전 찾기
  - 3분할로 반복.
  - 그렇지 않다면 N/2번 비교. 비효율적.

분할, Divide
정복, Conquer
통합, Combine 

# 반복 알고리즘.
  - O(n) C의 n승.
  - 분할 정복으로 하면 O(logN)으로 바뀜.

# 같은 색 공간 만들기.
  - 4분할 후 재귀.
  

이분탐색

이분탐색, Binary Search
  - 자료 가운데의 항목의 키 값과 비교하여 다음 검색의 위치를 결정.
  - 검색 범위를 반 씩 줄여나감.
  - 정렬 된 상태여야함.
  
N 크다. 정렬 가능 -> '이 분 탐 색'

java.util.Arrays.binarySearch
  - 이진탐색 API
  - 사용 전 정렬 필수.
  - int binarySearch(int[] a, int key)
  - int binarySearch(int[] a, int fromIndex, int toIndex, int key)
  
그래도 한 번 구현해보시라.

 private static int binarySearch(int[] arr,int N, int target) {
        int start = 0;
        int end = N-1;
        int mid;
        while(start<=end){
            mid = (start+end) / 2;

            if(arr[mid] == target)
                return mid;
            else if (arr[mid] > target)
                end = mid -1;
            else{
                start = mid + 1;
            }
        }
        return -1;
    }

알고리즘

주평
  - new InputStreamReader ..
  - main 메서드 만들어..

# Bj20187 - 종이접기.
  - 작은 부분부터 구현 해보기.
  - 어? 맞는데 왜이러지 싶으면 StringBuilder 제발 사용.

# Bj2630 - 색종이 만들기
  - 4분할 후 재귀.

# Bj1920 - 수 찾기.
  - 이분탐색 입문.
  - target, start, end, mid.
  
quaternary -> '4진수'
profile
바르고의 다락방

1개의 댓글

comment-user-thumbnail
2023년 8월 16일

좋은 글 감사합니다.

답글 달기