8.3

바르고·2023년 8월 3일
0

완전 검색 - 부분집합

부분 집합, Power Set
  - 집합에 포함된 원소들을 선택하는 것
  - 다수의 중요 알고리즘들이 원소들의 그룹에서 최적의 부분 집합을 찾는 것
  - ex) 0/1, 0/N knapsack | fractional knapsack -> "greedy"
  - nC1,nC2,...,nCn 모든 가능한 경우 고려.


// 재귀적 구현
generateSubSet(cnt)
	if(cnt == N)
    	// 완성
    else
    	isSelected[cnt] = true
        generateSubSet(cnt+1)
        isSelected[cnt] = false
        generateSubSet(cnt+1)

비트 연산자


& -> 비트 단위 and 연산
  - 조건 판단 : flag 확인
| -> 비트 단위 or 연산
  - flag set : flag 추가
^ -> 비트 단위 XOR 연산
~ -> 단항 연산자로 피연산자의 모든 비트를 반전
<< -> 피연산자의 비트 열을 왼쪽으로 이동 ex) num<<2
  - 남는 오른쪽 자리는 0으로 채움
  - 2진수이므로 밀때마다 값이 두 배씩.
  - 1<<4 -> 비트 1자리를 flag 1개 역할. -> & 연산으로 !=0 인지 검사.
>> -> 피연산자의 비트 열을 오른쪽으로 이동 ex) num>>2

백준

Bj 1010 - 다리놓기
  - 재귀로 풀면 시간초과.
  - 사실은 mCn 문제.
  
내 github에 알고 푼 문제 등록.

바킹독 문제집

https://github.com/encrypted-def/basic-algo-lecture/blob/master/workbook.md

삼성 B형 벼락치기

B형 대비로 알고 가야하는 것.
리스트, 스택,,, 맵 등의 자료구조를 잘 조합해서 시간복잡도는 단축시키는 것.

HashMap, TreeMap, HashSet, TreeSet

Priority Queue, Hash Table, (+ Merge Sort 정도)가 정석 유형
Priority Queue, Hash Table(를 위한 Linked List 포함)를 자유자재로 만들 수준으로 익혀두고 나올 때 까지 시험을 치는 것이 가장 효율적으로 합격하는 방법인 것 같다.
https://bloodstrawberry.tistory.com/19 -> 삼성 B형 레퍼런스 코드 링크
https://bloodstrawberry.tistory.com/47 -> 삼성 B형 정리 링크

1시간 문제이해 및 설계, 2시간 구현 및 디버깅으로 정확한 아웃풋 줄력, 1시간 최적화

테스트 케이스를 모두 통과하더라도. 숨겨진 테스트 케이스와 최악의 상황을 가정해 최적화. 

-----

해싱 : B형보는데 해싱을 모르고 응용할 줄 모르면 바로 혀 깨물어야됨
링크드리스트 구현 : 링크드리스트 쓰는 문제 진짜 많이 나온다
트리 구현 : 자식 수가 안 정해진 트리를 구현하는 법은 무적권 알아야 됨
메모이제이션 : 한 번 계산한 값을 다시 계산안하는 개념이 있어야됨
비트마스킹 : 변수를 쪼개서 공간복잡도를 아끼면서 저장하거나 다양한 비트 연산을 이용해서 코드를 최적화 하는 방법들
이분탐색 : 핵 기본적인 개념
분할정복 : 가끔식 출제 되는듯
Sort : 소팅 알고리즘은 퀵소트는 필수고 여유있으면 머지, 계수, 기수까지는 공부해보자.
Heap : 힙도 막상 필요할 때가 있음 스케쥴링 문제라던가 스케쥴링 문제라던가
Queue, Stack : B형 시험보러 갈껀데 큐 스택 못짜면 반성해야됨

월요일 디버깅 셤

제공되는 자바 프로젝트의 오류를 수정하여
제공되는 문서와 같이 정상적인 결과가 나오도록 디버깅.

 - 자바 예외 종류와 예외처리 방법
 - 생성자, 초기화 오류
 - Overriding 오류
 - Singleton 코딩 오류
 - 파일 입출력 관련 코딩 오류
 - comparable, comparator 오류
 
 java JDK 버전 확인.
 for문 조건 확인. idx 등등.
 Arrays.copyOf(##,##);

 문법적 에러(빨간줄), 논리적 에러.
 생성자에 void 지우기.
 @Override 문법 맞추기.
profile
바르고의 다락방

0개의 댓글