TIL

TIL_20230626

번잔중 2023. 6. 26. 23:25

오늘 할 일

  • 프로그래머스 문제 풀기
  • 기술 면접 질문 공부하기

오늘 배운 것

프로그래머스 + 백준 문제 풀기

기술 면접 질문 공부하기

  • 배열과 링크드리스트의 차이를 설명해주세요.
    • 배열: 메모리 상에 순서대로 데이터를 저장한다. 배열은 데이터를 인덱스로 조회할 수 있기 때문에 조회 성능이 높고, 데이터가 메모리에 순서대로 저장되어 있기 때문에 캐시의 지역성으로 인해 비교적 빠르게 탐색을 수행할 수 있다. 추가 또는 삭제는 배열 전체의 순서를 조정해야 하는 경우가 있기 때문에 성능이 링크드리스트에 비해서 좋지 않다.
    • 링크드리스트: 다음 데이터의 위치에 대한 포인터를 가지고 있는 구조이다. 다음 데이터의 위치만을 가지고 있기 때문에 조회의 성능은 좋지 않지만 추가, 삭제 연산을 빠르게 수행할 수 있다.
    • 배열 vs 링크드리스트: 배열은 조회 성능이 O(1)이고, 링크드리스트의 조회 성능은 O(N)이다. 반대로 추가 또는 삭제 연산시 배열은 O(N), 링크드리스트는 O(1)이다. 또한 배열은 컴파일 과정에서 메모리가 할당되지만 링크드리스트는 런타임 환경에서 메모리가 할당되는 동적 메모리 할당이다. 배열은 메모리 할당 시 stack 영역, 링크드리스트는 heap 영역에 할당된다.
    • 출처 링크1: https://kimmeh1.tistory.com/473

느낀점

  • 기술 면접에 관련된 질문을 정리하면서 평소 대략적으로 알고 있던 내용을 확실하게 정리하는 것이 중요하다는 생각이 듭니다.

내일 할 일

  • 프로그래머스 문제 풀기
  • 멘토링 DB 구조 작성하기

'TIL' 카테고리의 다른 글

TIL_20230628-29  (0) 2023.06.28
TIL_20230627  (0) 2023.06.27
TIL_20230625  (0) 2023.06.25
TIL_20230624  (0) 2023.06.24
TIL_20230623  (0) 2023.06.23