Undergraduate Records
itstory.tk/entry/%EB%A0%88%EB%93%9C%EB%B8%94%EB%9E%99-%ED%8A%B8%EB%A6%ACRed-black-tree 레드블랙 트리(Red-black tree) 이진검색트리는 저장과 검색에 평균 Θ( )시간이 소요되지만 운이 나쁘면 트리의 모양이 균형을 잘 이루지 못한다. 균형이 많이 깨지면 Θ(n)에 근접한 시간이 소요될 수도 있다. 그래서 고안해 itstory.tk 강의를 들으며 추가적으로 참고한 자료는 위와 같다. 레드 블랙 트리의 특성에 대해서 다시 한 번 정리해볼 수 있는 기회를 가질 수 있었다. 예전에는 왜 이렇게 굳이 사용해야 하는지 이해가 가지 않았다. 어떤 방식으로 트리가 동작하고, 하는 것을 이해하기가 힘들었는데 다시 보니 이런 원리로 레드 블랙 트..
baeharam.netlify.app/posts/data%20structure/hash-table/ [DS] 해쉬 테이블(Hash Table)이란? - 배하람의 블로그 해싱이란? (Hashing) 해싱이란 임의의 길이의 값을 해시함수(Hash Function)를 사용하여 고정된 크기의 값으로 변환하는 작업을 말한다. 그림 출처 위 그림에서 dog 라는 문자열을 해시함수를 이용해 새 baeharam.netlify.app 이 블로그도 참고 해서 해쉬 테이블에 대해 오늘은 복습하는 시간을 가졌다. 해쉬 테이블이 해싱 방법에도 꽤 종류가 적지 않고, 이전에 배웠을 때에는 헷갈리는 개념들이 있었다. 선형 탐색, 제곱 탐색, 이중 해싱 등. 그리고 충돌 해결법도 이해가 그 당시에는 가지 않는 부분들이 꽤 있었는데 ..
오늘은 배운 Tree의 자료구조를 가지고 인터뷰 질문을 예상하여 배우는 시간을 가졌다. 생각보다 여기에 있는 인터뷰 질문이 어렵지는 않아서 다행이라고 생각했다. 기본에 충실하면 조금만 생각하여 응용할 수 있는 문제들도 꽤 있었다. 그러나 문제가 막상 주어지면 트리를 이용하여 해결하는 문제라고 알지 못하면, 해결하기가 쉽지 않을 것 같았다. 앞으로의 공부 방향을 기본에 충실하여 응용하기로 목표를 다시 설정하는 계기가 되는 학습 시간이었다.
오늘도 기본적은 이진 트리에 대해서 배우고, Java를 이용하여 실제로 실습을 해보았다. red-black tree는 이전에 학기때 조금 이해가 안갔는데 이렇게 다시 보니까 이해가 되어서 신기했다. 아래의 참고 자료를 같이 보면서 다시 공부하는 시간을 가졌다. ratsgo.github.io/data%20structure&algorithm/2017/10/22/bst/ 이진탐색트리(Binary Search Tree) · ratsgo's blog 이번 글에서는 자료구조의 일종인 이진탐색트리(Binary Search Tree)에 대해 살펴보도록 하겠습니다. 이 글은 고려대 김선욱 교수님, 그리고 역시 같은 대학의 김황남 교수님 강의와 위키피디아를 정 ratsgo.github.io
공통적으로 만진 파일이 충돌이 나서 merge를 하라는 메세지가 떴다. 이것이 pull을 할 때 오류를 일으켜서 문제였다. 해결 방법은 아래와 같다. git status (확인) git fetch --all git reset --hard origin/master git pull 위의 명령어를 차례대로 수행하니 로컬에 있는 코드가 모두 덮어씌워졌다. 단, 이 명령어는 로컬에 있는 코드를 충돌이 나지 않도록 모두 덮어씌우는 작업이므로 기존에 작업하고 있던 내용을 보존하기 위해서는 주의해야 한다는 것을 잊지 말자. * 참고 블로그 https://macdev.tistory.com/186 git 로컬 파일 강제로 전체 덮어 쓰기 하는 방법. 참조 링크 배포/빌드 서버 등에 계속해서 최근 항목만을 가져오는 등의 경..
오늘은 sliver 3 단계의 백준 문제, 9095번 문제를 풀었다. https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 www.acmicpc.net 문제는 위와 같이 1,2,3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하는 것이었다. 파이썬을 연습하는 겸, 파이썬을 사용하여 문제를 풀었다. 사용해보니 java보다 코드가 간결해서 좋았다. count = int(input()) arr = [] l..
오늘은 계산이론 기말고사를 위해 공부를 하였다. 단원별로 어떤 내용을 배웠는지 정리하며, 문제를 풀어보았다. 기말 범위에 해당하는 내용들은 목차만을 정리해보았는데, 목차는 다음과 같았다. > 정규 언어의 성질 문법간의 동치성, 피전홀 원리, 펌핑 보조 원리 > 문맥 자유 언어 (CFL) 파싱 (번역기, 컴파일러 등 다른 번역에 용이함), 유용한 많은 언어는 정규언어가 아니다. 문맥 자유 문법은 오른쪽에 제한이 없으며 왼쪽에는 단일 변수만을 사용한다. Context Free Language OR Grammar 좌측 우선 유도, 우측 우선 유도, 문장 형태와 유도 트리와의 관계, 파싱의 모호성과 소속성 문법과 언어의 모호성 (트리가 1개 이상 유도될 경우에) > 문맥 자유 문법의 단순화와 정규형 유용한 치환..