Q1.  동기, 비동기에 대해 설명하고 장단점을 각각 설명해보세요.

 

A1. 

동기 -> 프로그램이 순차적으로 진행됨, 안정적이고 속도가 느림 -> 어려운 언어들..

비동기 -> 기다려주지 않고, 일단 순서대로 모두 진행함, 속도가 빠르지만, 처리하기 까다로움 -> 대부분 언어들 JS, python, java

 

모범 답안.

동기 -> Call 하고 응답이 올때까지 기다렸다가 다음 로직을 실행한다.

비동기 -> Call 하고 응답이 오지 않아도 다음 로직을 실행한다.


 

Q2. HashMap 동작 방식에 대해서 설명하세요

 

A2.

한개의 Key에 대해서 1개의 대칭됨. 검색할때 O(1)이 걸림

 

모범답안.

객체를 Map에 넣음 -> 여기서 객체란 Key-Value쌍을 넣음

Key는 유니크해야됨

동일하지 않은 두 객체가 같은 위치에 들어가려고 하는 경우 Collision

 


 

Q3. Array vs List vs Vector의 차이점

 

A3.

Array -> 추가 삭제가 용이

List -> 리스트 -> 검색이 용이함

Vector -> 잘모르겠음

 

모범답안.

Array (배열)

크기가 정해져 있다 / 기능이 없다.

길이를 바꿀 수 없다.

 

List(리스트)

배열이 가지고 있는 인덱스라는 장점을 버리고 빈틈없는 데이터의 적재

엘리먼트들 간의 순서가 중요함 -> 몇번째 데이터 인가

크기를 추가하기 편함

데이터 갯수가 확실하게 정해져있고, 자주 사용되면 array가 나음

https://wayhome25.github.io/cs/2017/04/17/cs-18-1/

 

Vector (벡터)

연속적인 메모리

미래에 들어갈 요소들을 위해 선할당을 한다.

끝에 추가하는 것은 O(1), 다른곳은 O(n)

랜덤하게 vector요소에 접근 가능

https://theemeraldtablet.tistory.com/entry/list%EC%99%80-vector-%EC%B0%A8%EC%9D%B4%EC%A0%90


참조 : https://github.com/brave-people/brave-tech-interview/blob/main/contents/language.md

 

GitHub - brave-people/brave-tech-interview: 🙋 핵심을 질문하다. 그리고 용감하게 대답하다. 국내 IT기업부

🙋 핵심을 질문하다. 그리고 용감하게 대답하다. 국내 IT기업부터 실리콘밸리까지 "현직자가 해설해주는 기술면접" - GitHub - brave-people/brave-tech-interview: 🙋 핵심을 질문하다. 그리고 용감하게 대

github.com

 

+ Recent posts