본문 바로가기

CS/면접 질문 정리

1. Data Structure - Stack/Queue 드디어 알고리즘에서 볼 수 있는 stack/queue까지 왔다. CS전공자가 아니므로 대부분 줏어 들은게 다였는데, 이를 정리하면서 많은 도움이 됐다. Stack LIFO, 즉, 선입후출 구조를 갖는다. Reference Queue 더보기
1. Data Structure - HashTable HashTable 연관배열(associative array)1 구조를 이용하여 key-value를 저장하는 자료구조로, 위 그림과 같이 key, hash function, hash, value, bucket(slot)으로 구성되어 있다. key: 고유한 값으로, hash function의 input이 된다. 이 상태로 bucket에 저장된다면 다양한 길이 만큼의 저장소를 구성해 두어야 하기 때문에 해시 함수로 값을 바꿔야 한다. Hash function: 다양한 길이의 key를 hash로 변경하는 역할을 한다. 서로 다른 key가 같은 hash를 갖을 경우 해시 충돌이 일어나므로, 조심해야 한다. hash: hash function의 결과물로, bucket에서 value와 매칭되어 저장된다. value:.. 더보기
1. Data Structure - 배열(Array), 연결리스트(LinkedList) 자료구조(Data structure)는 데이터들의 모임, 관계, 함수, 명령 등의 집합을 의미한다. 즉, 처리하고자 하는 데이터들이 모여 있는 형태, 혹은, 처리하고자 하는 데이터들 사이의 관계 (수직, 상하, 일방적, 상호 등)를 정의한 것, 혹은, 데이터들을 사용하기 용이하게 저장해 놓은 형태라고 볼 수 있다. 자료구조를 잘 선택하면 사용하는 메모리와 시간, 공간적 효율성을 확보할 수 있다. 배열(Array) 같은 종류의 데이터(int, string, float, etc.)를 하나의 이름으로 관리한다. 배열 인덱스는 값에 대한 유일무이한 식별자이다. 크기가 정해져있고, 변경할 수 없다. array를 assign한 변수에는 배열의 첫 원소의 메모리 주소를 갖고 있어 index를 사용하여 빠르게 접근할 .. 더보기
IT 기업 면접 질문 정리 IT 기업 기술 면접 대비를 위한 기본 개념 정리를 위한 카테고리입니다. 본 글은 https://github.com/WeareSoft/tech-interview을 참고하여 작성하였고, CS에 대한 개념이 없는 분들까지 쉽게 이해할 수 있도록 정리하는 것을 목적으로 하고 있습니다. 더보기