22.05.31 ~ 06.02 TIL

귀찮Lee·2022년 6월 2일
0

TIL / 회고록

목록 보기
19/35

◎ 학습 전

※ 오늘 나의 학습 내용&목표는 무엇인가요?

  • 의사 코드(pseudocode)
    • 개념학습 : 기초 개념을 학습
  • 시간 복잡도(Time Complexity)
    • 개념학습 : 기초 개념을 학습
    • 퀴즈: 학습한 개념의 이해도를 확인
  • Greedy, Brute-Force Algorithm, Binary Search Algorithm
    • 개념학습 : 기초 개념을 학습
  • 학습 목표
    • 알고리즘이 무엇인지 설명할 수 있다.
    • 알고리즘 문제를 이해하고 전략을 세울 수 있다.
    • 알고리즘 풀이에 필요한 의사 코드를 작성할 수 있다.
    • 의사 코드에서 세운 전략을 코드로 구현할 수 있다.
    • 내가 구현한 알고리즘을 자바 언어로 설명할 수 있다.

※ 오늘 학습할 내용 중에 이미 알고 있는 내용은 무엇인가요?

  • 알고리즘 : 컴퓨터가 특정 행동을 시키기 위해 인간이 과정을 설계하여 컴퓨터가 알아듣게 만든 결과물
  • 간략한 의사코드를 작성하여 이에 맞추어 코드를 작성할 수 있다. (현재 배우고 생각할 수 있는 범위 내에서)
  • 기본적인 자바언어는 내가 가지고 있는 내용과 구글링을 통해 작성할 수 있다.

◎ 학습 후

※ 오늘 학습 내용 중 새롭게 배운 내용은 무엇인가요?

  • 복잡한 알고리즘을 머리로만 생각하지 말고 과정을 말로 풀어 써 놓는 연습을 했다.
  • 시간 복잡도의 개념을 알고, 효율적인 알고리즘을 위해 어떻게 해야하는지 알아보았다.
  • Greedy(탐욕) 알고리즘을 언제 사용해야 하고 한계점이 무엇인지 알아보았다. 그리고 이를 이용하여 간단한 문제를 풀어보았다.
  • Brute-Force Algorithm, Binary Search Algorithm의 논리 구조를 이해해 보았다.
    • Brute-Force Algorithm : 모든 조건에 대해 해당하는지 전부 넣어보기
    • Binary Search Algorithm : 정렬된 데이터에서, 가운데 값을 계속 탐색하여 필요없는 범위를 제거하는 행위를 반복
  • 동적계획법 DP (Dynamic Programming)과 연관된 문제를 Top-down, Bottom-up 방식으로 풀어보았다.

※ 오늘 학습한 내용 중 아직 이해되지 않은 불확실한 내용은 무엇인가요?

  • Dynamic Programming이 어떤 것인지 정리하여 알아보지 않음
  • 더 공부하면 좋은 키워드 정리 미실시
    • Brute Force vs Dynamic Programing
    • Closet-Pair Problems by Brute Force
    • Convex-Hull Problems by Brute Force

    • Linear Search Algorithm
    • Hash Search Algorithm
    • Divide-and-conquer algorithm
    • Binary Tree vs Binary Search Tree
    • Binary Search Algorithm vs Binary Search Tree

※ 이해되지 않은, 불확실한 내용을 보완하기 위해서 나는 무엇을 할 수 있을까요?

  • 위의 내용을 하나씩 정리하여 velog에 정리해보자

※ 나의 오늘 학습 만족도는 몇 점인가요?

  • 학습 태도 70점 : 가족끼리 불화가 너무 신경쓰여서 화~수는 거이 공부를 못한것 같다.
  • 이해도 90점 : 지금 당장은 전부 이해할 수 있으나, 자주 반복하여 보지 않으면 금방 까먹을 것이다. 날짜를 잡아 복습할 수 있도록 하자.
  • 학습 만족도 95점 : 어려운 알고리즘 문제를 푸는 것은 정말 잼있는거 같다. 잠 잘때도 계속 생각나서 힘들긴 하지만, 여러가지 경우를 생각하다 보면 더 재미있을거 같다.

◎ 생각 정리, 해야할 일 정리

  • 복습하는 양과 기간을 정해서 복습을 진행해보자
  • 하루에 한번씩 해야하는 일
    • 1일 (의미있는) 1커밋 (의미 있게 하기가 어려울듯)
    • 1일 8쪽 책읽기 (Clean Code)
    • 복습할 양 정해보기 (복습하면서 밀린 일까지 같이 해보기)
  • 밀린 일들... (~6/6까지 해보자!)
    • 내부 클래스 자료 1 ~ 2가지 찾아볼 것
    • 제네릭 => static 은 사용불가한 이유
    • 래퍼 클래스와 원시타입의 차이 찾기 (현업에서는 래퍼 클래스를 더 자주 사용)
    • static일 떄 메모리는 어떻게 됨? -> Method Area에 저장 > 심화) https://12bme.tistory.com/94
    • Enum 메소드 하나씩 사용해보고 예시 추가하기
    • 스레드 직접 예시 작성해보고 내용 정리 (이건 해봤던거 같은데...)
    • 메서드 레퍼런스 할 때, 왜 정적 메서드를 참조 변수를 이용하면 왜 안될까? 찾아보기
    • 모의 면접 자료 : 내 생각과 정리했던 내용 비교하기
  • 더 공부하면 좋은 키워드 정리 미실시
    • Brute Force vs Dynamic Programing
    • Closet-Pair Problems by Brute Force
    • Convex-Hull Problems by Brute Force
    • Linear Search Algorithm
    • Hash Search Algorithm
    • Divide-and-conquer algorithm
    • Binary Tree vs Binary Search Tree
    • Binary Search Algorithm vs Binary Search Tree
  • Error Handling log

◎ 오늘 배운내용들 정리

  • Algorhithm 기본내용 : velog
  • Algorhithm 종류 : velog
profile
배운 것은 기록하자! / 오류 지적은 언제나 환영!

0개의 댓글