코드 훔쳐보는 변태 코더
춤 좋아하는 백엔드 개발자(였으면 좋겠다)
22-12-20 TIL

어제의 목표 🤔

  • 알고리즘 힙구조/재귀용법 정리하기 ⭕️
    • 기존 실버1수준 까지 풀 수 있던 자료구조 골드 하위 문제 도전해보기  ⭕️ (실버 1문제로 타협)
  • 이펙티브 자바 한 챕터 읽고 정리하기 / JPA 한 챕터 읽고 정리하기 (챕터 야바위) ❌(시간부족)
  • 게시판 프로젝트 리팩토링 마무리 / 테스트 코드 작성 하고 끝내기 ❌(시간부족)
    • 작성한 코드를 왜 그렇게 작성했는지에 대한 이유를 설명할 수 있어야 할 것 같다. 🤔

 

오늘 진행한 것들 🤔

  • 힙 자료구조에 대해서 정리
 

힙 자료구조에 대해서 알아보자 🤔

힙 힙이란 뭘까 ? 🤔 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진트리이다. 브랜치가 최대 2개이다. (이진) 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입하는 트

codinghentai.tistory.com

 

  • 재귀용법에 대해서 정리
  • 힙 자료구조 알고리즘 1문제, 재귀 알고리즘 1문제 풀이
 

백준 19638번 센티와 마법의 뿅망치 (자바) 풀이

시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 1024 MB 1869 625 506 33.488% 문제 센티는 마법 도구들을 지니고 여행을 떠나는 것이 취미인 악당이다. 거인의 나라에 도착한 센티는 자신보다

codinghentai.tistory.com

 

 

백준 17478번 재귀함수가 뭔가요? (자바) 풀이

시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 38589 15339 12735 38.831% 문제 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하

codinghentai.tistory.com

 

  • 데이터베이스 실시간 강의
  • 그룹스터디 인사이트 공유

오늘의 배운 점 🤔

  • 힙구조에 대해서 배웠습니다.
    • 이진 탐색 트리와 완전 이진 트리의 차이점에 대해서 알게 되었습니다.
    • 이진 탐색 트리는 말그대로 탐색을 위한 구조이고 완전 이진 트리는 최소/최댓값을 빠르게 찾기위한 구조라고 정리했습니다.
      • 완전 이진트리는 값을 무조건 왼쪽 끝 부터 삽입하고 최소/최대 정렬에 따라 부모 노드와 위치를 계속 바꿔가면서 삽입하고 (윗 노드의 값이 자식 노드의 값보다 크거나 같아야 한다 (최대힙일경우)) , 이진 탐색 트리는 부모 노드보다 값이 크면 오른쪽, 작으면 왼쪽 으로 삽입하는것을 알게 되었습니다.
  • 재귀용법에 대해서 배웠습니다.
    • 따로 정리라고 할것은 재귀 함수에 어떤 부분에 스탑을 넣을 것인지 조건을 잘 정하는게 관건인것 같았습니다.
    • 자료구조부분은 생각보다 어려웠던 부분도 없었고 이미 구현이 되어있는 api 도 많았지만, 재귀나 정렬부터는 제가 직접 머릿속으로 고민해야될 문제가 많은것 같아서 차분차분 풀어나가야 할 것 같습니다.
      • 멘토님께서 어떠한 문제를 잘 풀게 되는건 알고리즘 풀이의 실력이 늘은것이 아닌 해당 문제에 쓰이는 것에 대한 실력이 상승한거라고 하셨는데, 이제 다시 브론즈부터 풀어나가야 할 문제들이 생긴것 같습니다.
  • 알고리즘 문제를 풀었습니다.
    • 재귀 문제는 실버 5로 도전했다가 큰코를 다쳤습니다. 
    • 메소드가 스택에 어떻게 쌓이는지는 이해를 했지만, 직접 풀이를 해보려니 이해가 완전히 되지 않은 느낌입니다.
    • 다시 브론즈부터 풀어봐야겠습니다.
    • 힙 문제는 실버 1문제를 풀이했습니다.
      • 이제 골드문제도 도전해도 되겠다는 생각이 들었습니다. (언제 한번 알고리즘 풀데이를 가져봐야겠습니다.)
  • 데이터베이스 실시간 강의
    • JOIN, GROUP BY, HAVING, ALTER ,인덱스 에 대해서 배웠습니다.
      • GROUP BY 같은 경우에는 말그대로 같은 값을 가진 row 끼리 그룹별로 묶어서 관리할 수 있게 해줍니다.
      • 인덱스 같은 경우에는 정리가 더 필요할 것 같습니다.
        • 보통은 pk로 설정해버리면 pk가 되는 컬럼은 자동으로 인덱스가 생성되나, 그렇지 않은 컬럼들도 따로 인덱스를 생성 할 수 있습니다.
        • 따로 제약조건을 붙여서도 관리가 가능했습니다.
      • JOIN 은 이너조인과 아우터 조인이 있으나 이너조인만 배웠습니다.
        • 이너조인은 단순히 두 테이블간 겹치는 부분만 데이터를 가져와서 퍼즐처럼 붙여준다고 이해했습니다.
        • 따로 찾아보니 아우터조인은 중복이 되지 않는 값까지 다 가져와서 중복이 되지 않은 값들을 null 로 입력후 붙여준다고 합니다.
      • having 은 where 과 비슷하지만, having 은 그룹으로 묶었을때의 로우에만 적용되고 where 은 개별 데이터별로 적용된다는 차이점을 갖고있습니다.
      • alter 는 테이블에 변경사항이 존재할때 수정하는 정도의 문법으로 알고있으면 될 것 같습니다.
  • 그룹 스터디에서 인사이트 공유를 진행했습니다.
    • 호승님은 네트워크, 컴퓨터구조에 대한 짤막한 정보들을 가져와주셨습니다.
      • 메모리? 의 크기가 작을수록 컴퓨터의 성능이 좋아진다.. 라는 내용이 존재했었습니다. 생각해보니 맞는것 같습니다. 장치 하나하나가 굉장히 작아서 같은 면적에 많이 들어가고 감당이 된다면 그게 최고의 성능을 발휘 할 수 있겠다 생각했습니다.
      • 네트워크같은 경우에는 lan과 wan 의 차이에 대해서 설명해주셨습니다. lan은 제한된 구역내의 네트워크, wan은 광범위한 구역의 네트워크 를 뜻한다고 합니다. 흥미롭네요
    • 이안님은 토이프로젝트를 진행하시면서 겪었던 문제에 대해서 공유를 해주셨습니다.
      • 주변에 누군가가 고민을 하는것을 같이 공유한다는것은 좋은것 같습니다.
        • 저도 그 부분에 대해서 한번 더 생각할 수 있게 되어서 좋았습니다.
        • 주변에 동료가 한계단 한계단 올라가는걸 볼때마다 짜릿한 기분이(?) 듭니다.
    • 진혁님께서는 정적 팩토리 메소드에 대해서 공유를 해주셨습니다.
      • 이펙티브 자바로 정리했던 내용인데 책 자체가 어려워서 솔직히 다시봐도 크게 이해되는 부분은 없었습니다.
      • 하지만 또 다시 보게되니 그 이후로 배웠던 무언가와 연관지어서 생각할 수 있게 되었습니다.
        •  이러한 부분에서 보람을 한번 더 느끼게 되는것 같습니다. 꾸준한 학습이 정답인것 같네요.

 

내일 목표 🤔

  • 알고리즘 정렬/ 공간복잡도 정리하기
  • 자료구조 실버 상위문제 2문제 이상 풀이하기
  • 이펙티브 자바 반 챕터 읽고 정리하기 / JPA 한 챕터 읽고 정리하기 (챕터 야바위)
  • 게시판 프로젝트 리팩토링 마무리 / 테스트 코드 작성 하고 끝내기

 

내일도 화이팅! 

'TIL' 카테고리의 다른 글

22-12-26 TIL  (0) 2022.12.26
22-12-22 TIL  (0) 2022.12.22
22-12-21 TIL  (0) 2022.12.21
22-12-19 TIL  (0) 2022.12.19
22-12-15 TIL  (0) 2022.12.15
  Comments,     Trackbacks