Sh개발일기

기술면접 질문모음 2 본문

면접준비

기술면접 질문모음 2

Sh4869 2020. 4. 25. 00:34

1. 자료구조를 선택하는 기준은?

자료의 처리 시간, 자료의 크기, 활용 빈도, 갱신 정도 등에 의해 선택한다.

 

2. List, Set, Map의 차이는?

List는 순서가 있는 데이터의 집합으로, 중복을 허용한다.

Set은 순서가 없는 데이터의 집합으로, 중복을 허용하지 않는다.

Map은 key와 value한 쌍으로 이루어지는 데이터의 집합으로 순서가 없다.

이 때 키는 중복을 허용하지 않는다.

List와 Set은 Collection 인터페이스를 상속받고 Map은 구조상의 차이로 인해 별도로 정의한다.

 

3. List, Set, Map은 어떤 인터페이스를 구현하는가?

List, Set은 각각 Collection인터페이스를 구현한다. Map은 별도로 정의한다

 

4. foreach문을 사용할 수 있는 자료구조는 어떤 인터페이스를 구현하는가?

Iterable 인터페이스를 구현한다.

 

5. foreach를 사용할 때 다음 데이터를 얻기 위해 내부적으로 호출하는 메소드는?

iterator() 메소드를 호출

 

6. iterator와 iteratable의 차이점은?

iterable은 순회할 수 있는 컬렉션을 의미한다. iterable 인터페이스를 implement하면 객체는 foreach문을 사용할 수 있다.

 

7. iterator를 상속받으면 구현해야 하는 메소드는?

 

 

8. 배열의 size는 변경이 가능한가?

불가능하다.

 

9. 사이즈가 10인 배열에서 데이터를 20개를 넣거나 size를 5로 줄이는 방법은?

새로운 배열을 만들어서 변경해야 한다.

 

10. 이렇게 size가 변경되는 경우 사용하면 좋은 자료구조는?

ArrayList와 같은 List자료구조

 

11. 가변 자료구조중 아는것은?

ArrayList, LinkedList, Queue, Stack 등등 

 

12. Generic타입과 non Generic타입의 자료구조의 차이는?

Generic은 데이터타입의 일반화를 의미하는 것으로 클래스나 메소드 내부에서 사용할 내부 데이터의 타입을 컴파일시에 미리 지정하는 방법이다. 이렇게 컴파일시 데이터 타입을 검사하면 클래스나 메소드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있고, 반환값에 대한 타입 변환 및 타입 검사에 들어가는 노력을 줄일 수 있다.

 

13. Generic type을 사용하는 자료구조는?

 

 

14. Generic type의 자료구조의 장점은? Object로 하면 되지 않나?

반환된 Object 객체를 다시 원하는 타입으로 타입 변환 해야하며

 

15. ArrayList와 LinkedList의 차이

ArrayList는 배열로 구현되어 있어 물리적 순서와 논리적 순서가 일치하다. 반면 LinkedList는 다음 데이터에 관한 정보만을 가지고 있고 물리적 순서와 논리적 순서가 일치하지 않는다.

 

16. 데이터를 검색할 때 적합한 자료구조는?

둘 중에는 ArrayList가 더 적합하다. 이외에는 Binary Search Tree등이 있다.

 

17. 데이터를 추가, 삭제할 때 적합한 것은?

둘 중에는 LinkedList가 더 적합하다고 알려져 있지만, 사실 데이터를 추가하거나 삭제하는 index까지 가는게 worst case로 O(n)이 걸릴 수 있다.

 

18. ArrayList나 List에서 중간 데이터를 삭제할 경우 내부적으로 어떻게 동작하는가?

해당 데이터의 해당하는 index부터 하나씩 데이터를 땡겨오게 된다.

 

19. 둘 중 검색속도가 더 빠른것은?

검색은 똑같지 않나,,//;;

 

20. List에서 데이터가 어떻게 나열되어 있을때 가장 검색이 느린가?

 

 

21. LinkedList는 이전 node, 이후node의 정보를 어떻게 하는가?

LinkedList의 각 노드는 value값과 이전 node 이후 node의 위치값을 참조하는 레퍼런스 변수를 가지고 있다.

 

22. LinkedList는 데이터를 중간에 삽입하는 경우 어떻게 동작하는가?

먼저 추가되는 노드의 next를 이전 노드의 next로, prev를 next 노드의 prev로 바꿔주고, next의 prev를 자기 자신으로, prev의 next를 자기 자신으로 바꿔준다.

 

23. List와 Set의 차이점은?

List는 순서가 있는 중복값을 허용하는 자료형이고, Set은 순서가 없고 중복값을 허용하지 않는다.

 

24. 중복을 허용하지 않는다면 내부적으로 동일하다는 것을 어떻게 판별하는가?

 

25. 같다를 판단하는 기준을 바꿀 수 있는가?

 

26. Map과 다른 자료구조의 차이점은?

Map은 key와 value의 쌍으로 이루어져 있는 자료구조이다.

 

27. Map을 사용해야 하는 경우의 예시를 들어보시오.

JSON자료구조를 Map을 이용하여 표현할 수 있다. 어떤 key값에 대한 value가 매핑되어야 하는 경우 사용할 수 있다.

 

28. 알고있는 Map 자료구조는?

HashMap

 

29. HashTable과 HashMap의 차이점은?

 

30. Hashing이란 무엇인가?

 

31. hash값의 중복을 피하는 방법은?

배열의 크기를 크게 한다, hash함수를 중복값이 나오지 않도록 잘 짠다

 

32. hashing의 장점은?

 

33. Queue와 Stack의 차이는?

Queue는 선형자료구조의 일종으로 FIFO(First In, First Out)구조를 가지고 있고, Stack은 LIFO(Last In, First Out)구조를 가지고 있다.

 

34. Queue와 Stack의 사용 예시

 

35. 각각 내부적으로 어떤 자료구조를 사용하여 만들어지는가? 직접 구현해야 한다면 어떻게?

 

36. 왜 그러한 자료구조를 이용하여 구현하는게 좋은가?

 

37. 인스턴스 메세지를 등록된 순서대로 발송되게 하려면 어떠한 자료구조가 유리한가?

 

38. 배열이나 List를 이용하는것과의 차이는?

배열 대신 List를 사용할 경우 Generic을 이용한 타입 안정성을 확보할 수 있는 장점이 있으며 size가 유동적으로 변하는 경우 유용하게 사용할 수 있다.

 

39. Queue로 선입선출 메세지 배송을 만들었는데, 긴급발송같은 우선순위가 있을 경우 먼저 발송해야 한다면 어떠한 자료구조를 이용하는게 좋은가

 

40. Tree는 무엇이고 어떤 경우에 사용하는가?

 

41. B-Tree에 대해 설명하시오.

 

42. B-Tree는 내부적으로 노드를 어떻게 가지고 있는가

 

43. 이진검색트리를 설명하시오

 

44. B-Tree와 이진검색트리의 내부적인 차이는?

 

45. 이진검색트리에서 데이터가 어떻게 저장되어있는 경우 가장 검색이 느린가?

데이터가 한쪽으로만 극단적으로 치우쳐 있는 경우

 

46. 동기화를 지원하는 자료구조는?

 

47. 동기화를 지원하는 자료구조는 왜, 언제 필요한가?

 

48. 멀티스레드 환경에서 동기화를 지원하지 않으면 어떤 문제가 발생하는가?

 

작성중 ㅜㅜ

'면접준비' 카테고리의 다른 글

기술면접 질문 모음 1  (0) 2020.04.24
스프링 및 웹 개발  (0) 2020.04.24
JAVA  (0) 2020.04.24