전체 글 390

완벽한 해싱 & 유니버설 해싱

완벽한 해싱 n개가 n개의 버킷에 하나씩 따로따로 저장된다면 완벽한 해싱이라 볼 수 있다.입력한 데이터가 뭔지 모두 알고 있을 경우에만 가능하다. 대부분의 경우에는 입력이 정확히 어떤 것들이 들어올지미리 알 수가 없기 때문에 충돌이 최소가 되는 좋은 해시 함수를 사용할 필요가 있다.  유니버설 해싱 유니버설 해싱은 "랜덤 해싱"으로 이해하면 더 쉽다.난수를 사용하는 무작위 알고리듬이 성능을 높이는 데에 도움이 되는 예로 퀵 정렬을 들 수 있다.이와 같이 난수의 개념을 해싱 함수에 적용한 것이다. 입력이 어떤 것들인지 정확히 알 수 없는 무작위인 경우에 항상 해시값들을 고르게 분포시켜주는 함수를 만드는 것은 어렵다.때문에 유니버설 해싱에서는 해시 함수에 난수를 적용한다.  암호화 해시 함수 다양한 길이의 ..

인하대 미래인재개발원 개발분야 면접후기

면접은 2:2 면접으로 진행 되었다.잠깐의 시간이었지만 교수님과 함께한 대화는 꽤나 내게 인상적으로 짙게 남았다.좋은 개발자란 무엇인지 면접 시간 동안 짧게 교수님과 대화를 나누었다.늘 탐구하는 개발자란 답변을 받았다.사실 혼자 공부하면서 막막한 마음에각 대학 교수님께 메일도 보내보고 저자분께 어떻게 공부하면 좋을지 메일도 보내보았었다.내가 가는 길이 맞는지 불안해하기도 했었다.하지만 이번 면접 시간 때 나눈 대화들을 통해 들은 생각은더 노력하고 더 탐구하며 더 신중하게 배우려 노력하고자 하는 마음가짐으로 살아야겠다 싶었다.그런 의미로필기 시험 때 당황했었던 수학 좀 신경써야겠다 싶었다.

삽입 정렬과 힙 정렬

삽입 정렬(Insertion Sort): 이해와 구현  이번에 소개하는 삽입 정렬은보는 관점에 따라서 별도의 메모리를 필요로 하지 않는 '개선된 선택 정렬'과 유사하다고 느낄 수 있다.하지만 전혀 다른 방법으로 정렬을 이뤄나간다.이와 관련해서 다음 그림을 보자.  위 그림의 배열은 정렬이 완료된 부분과 완료되지 않은 부분으로 나뉘어 있다.이렇듯 삽입 정렬은 정렬 대상을 두 부분으로 나눠서,정렬 안 된 부분에 있는 데이터를 정렬 된 부분의 특정 위치에'삽입'해 가면서 정렬을 진행하는 알고리즘이다.그럼 다음 그림을 통해서 5,3,2,4,1의 오름차순 정렬 과정을 보이겠다.   위 그림의 가장 윗부분에서 보이듯이,첫 번쨰 데이터와 두 번째 데이터를 비교하여,정렬된 상태가 되도록 두 번째 데이터를 옮기면서 정렬..

Moving skill & heal/damage item

추가된 것 Dash- 이동 중에만 가능- 점프 등 다른 이동기 사용 중에 불가능- 이펙트 이쁘게 변경 게임 다시하기 끝내기 기능 순간이동 - 이펙트 이쁘게 변경- 사운드 추가- 통과할 수 없는 곳은 순간이동 불가능 heal / damage item- 이펙트 이쁘게 변경      추가 할 것game timer 조절하기- 플레이어 시간만 빠르게- 게임 시간도 빠르게 각각 건들여보기.

UE5 2024.06.10

동적 계획법의 접근 방식

동적 계획법의 접근 방식 1단계: 동적 계획법 필요조건 분석하기 부분집합의 합과 같은 문제에 직면하게 되면먼저 이 문제를 동적 계획법으로 해결할 수 있는지를 확인해야 한다.일반적으로 주어진 문제가 다음 속성을 가지고 있다면 동적 계획법으로 해결할 수 있다. 중복되는 부분 문제 : 일반적인 분할 정복 기법과 마찬가지로,최종해(final solution)는 여러 개의 부분 문제 조합으로 표현될 수 있어야 한다.그러나 분할 정복과는 달리 특정 부분 문제가 여러번 발생할 수 있다.최적 부분 구조 : 주어진 문제에 대한 최적해(optimal solution)는부분 문제의 최적해로부터 생성될 수 있다.  위 그림을 보면 크기가 n인 부분집합은 크기가 n - 1인 부분집합에 새로운 원소 하나를 추가하여 만들 수 있다..

TOEFL-WRITING 지문 읽고 핵심어 추출

토플에서 노트테이킹 연습이 중요한가보다. 책에서 노트 테이킹 연습에 대해서 주로 말하고 있다. 노트테이킹 방법 1. 요점만 적기 읽고 들은 것을 모두 받아 적으려 하지 말고, 주용한 것만 구별해서 적는다. 좋은 노트는 원문의 내용에서 가장 중요하다고 생각되는 내용만 선별해서 간단하게 적은 반면, 나쁜 노드는 원문에서 언급한 단어를 순서대로 나열하고 중요도와 상관없이 군더더기 내용도 적었다. 2. 간단히 적기 가능한 한 간단한 문장과 어휘를 사용한다. 절보다는 구를 사용하고, 불피룡한 수식어 등은 제외한다. 나중에 내용을 기억해내는 데 단서가 될 수 있을 정도면 충분하다. 3. 약어 및 기호 사용하기 자주 쓰이는 표현이나 개념은 약어나 기호를 활용하면 효율적이다. 4. 편한 단어 사용하기 노트테이킹을 할 ..

카테고리 없음 2024.06.07

우선순위 큐

우선순위 큐의 구현 방법 우선순위 큐를 구현하는 방법은 다음과 같이 세 가지로 구분할 수 있다. 배열 기반 구현연결 리스트 기반 구현힙을 이용하는 방법 배열이나 연결 리스트를 이용하면 우선순위 큐를 매우 간단히 구현할 수 있다.참고로 다음 그림에서, 저장된 숫자는 데이터인 동시에 우선순위 정보라고 가정하였다.숫자 1이 가장 높은 우선순위를 뜻하며, 이보다 값이 커질수록 우선순위는 낮아진다고 가정하였다.  배열의 경우, 데이터의 우선순위가 높을수록 배열의 앞쪽에 데이터를 위치시킨다.이렇게 하면 우선순위가 높은 데이터를 반환 및 소멸하는 것이 어려운 일이 아니다.하지만 다음과 같은 단점이 따른다. 데이터를 삽입 및 삭제하는 과정에서데이터를 한 칸씩 뒤로 밀거나 한 칸씩 앞으로 당기는 연산을 수반해야한다. 이..