inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

38군데 합격 비법, 2026 코딩테스트 필수 알고리즘

3-8. 해쉬 - 2

링크드리스트 중간에 삽입 삭제 연산

해결된 질문

78

권석기

작성한 질문수 8

0

1. 현재 학습 진도

 

2. 어려움을 겪는 부분

 

3. 시도해보신 내용

 

이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊

python 코딩-테스트 알고리즘 data-structure

답변 2

0

딩코딩코

안녕하세요 석기님 좋은 질문 감사합니다!!!

 

조금 애매한 부분을 정확하게 질문해주신 것 같습니다

삽입 & 삭제 하는 행위 자체에만 집중할 것이냐, 혹은 삽입 & 삭제 하기 위한 전체 행위에 대해서 파악할 것이냐에 따라 다를 것 같습니다

 

삽입 & 삭제 하는 행위 자체에만 집중한다면 O(1) 이 맞는데, 석기님이 말씀해주신 것처럼 찾아서 삭제하는 전체 과정을 의미한다면, 찾기위한 전제 과정에서 O(N) 이 소요될 것 같습니다

 

즉, 노션에서 말하는 O(1)은 "순수한 삽입/삭제 동작 자체"를 의미하는 거예요. 하지만 실제 문제에서는 대부분 위치를 찾는 과정이 포함되므로 O(N)이 되는 게 맞습니다.

이런 식으로 깊게 생각하시면 자료구조 이해도가 확실히 높아지실 것 같습니다. 다음에 링크드리스트 문제 만나시면 "위치를 찾아야 하나? 아니면 이미 알고 있나?"를 먼저 생각해보시고 시간 복잡도를 결정하시면 좋을 것 같습니다 좋은 질문 감사합니다!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 권석기님,

링크드 리스트의 중간에 삽입 또는 삭제할 때 시간 복잡도가 O(1)으로 될 수 있는 경우는, 삽입이나 삭제할 특정 노드까지의 포인터를 이미 가지고 있는 경우입니다. 즉, 현재 위치를 알고 있을 때 바로 삽입이나 삭제가 가능하기 때문에 O(1)로 처리됩니다.

그러나 질문하신 대로 특정 위치에 삽입하기 위해 그 위치의 노드를 찾기 위해서는 순회를 해야 하며, 이 경우 시간 복잡도가 O(N)입니다. 즉, 노드를 찾는 시간이 O(N)이나, 위치를 이미 알고 있는 경우 삽입/삭제 연산 자체는 O(1)이라는 것을 이해하시면 될 것 같습니다.

추가적인 질문이나 궁금한 점이 있으시면 언제든지 말씀해 주세요! 학습에 도움 되시길 바랍니다. 😊

강의 자료 또는 관련 정보는 수업 자료 버튼을 이용해 강의실 내 커리큘럼 메뉴에서 확인하실 수 있습니다. 수업 자료 확인하기

수강평 이벤트

0

33

2

코딩테스트 처음인데 이런 공부방법이어도 괜찮을까요

0

66

2

3-3 정렬-2 선택정렬 로직

0

42

2

링크드 리스트 끝에서 k번째 값 출력하기

0

45

2

LinkedList 과제 Fast, slow 포인터

0

50

2

투포인터 시간복잡도

0

52

2

수강평 작성 후 자료

0

53

2

수업교재 링크 오류

2

114

2

프로그래머스에서 제출 후 채점시 틀림ㅠ

0

130

2

1-10 알고리즘 더 풀어보기(2) 질문 있습니다

0

74

2

문제 풀이 방식 관련 질문입니다!

0

85

2

1-5 알고리즘과 친해지기 (2) - 최빈값찾기 질문 있습니다

0

91

2

수업자료 pdf 받고싶습니다

0

106

2

강의 자료 오류 수정

0

75

1

2-10 더하거나 빼거나 관련 질문입니다

0

63

2

3-8 해쉬 -2

0

49

2

Linked List Element Delete Explanation Problem

0

68

2

강의3-4 스택 탑 문제

0

74

2

코드스니펫 입출력 케이스에 오류가 있는것 같아요

0

99

3

링크드 리스트 원소 찾기 구현 방식 질문드립니다.

0

75

2

1874 - 스택 문항

0

81

2

DP Java 예제 자료형 오버플로우 문제

0

100

2

4-9 4주차 숙제중 농심라면 문제

0

111

2

DFS 에서 스택을 사용하는 이유

1

187

3