inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

3-5. 스택

스택 Pop 메모리 제거

해결된 질문

74

애롱

작성한 질문수 8

0

1. 현재 학습 진도

 

2. 어려움을 겪는 부분

 

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

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

답변 1

0

딩코딩코

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

원래 head 노드는 메모리에서 완전히 제거됩니다. Python에는 가비지 컬렉터라는 기능이 있어서, 더 이상 사용되지 않는 메모리를 자동으로 찾아서 해제하게 됩니다

이는 참조 카운팅에 의해서 동작합니다. Python은 각 객체가 몇 번 참조되고 있는지 계속 세고 있습니다

python

def pop(self):
    delete_head = self.head        # 이 순간 원래 head 노드의 참조 카운트: 2개
    self.head = self.head.next     # self.head가 다른 노드를 가리킴 (참조 카운트 1개로 감소)
    return delete_head             # 함수가 끝나면 delete_head 변수도 사라짐 (참조 카운트 0이 됨)

참조 카운트가 0이 되는 순간, Python은 "아 이 메모리 더 이상 필요 없구나"라고 판단하고 즉시 메모리에서 제거해버립니다.

C나 C++에서는 개발자가 직접 free()delete를 호출해야 하지만, Python, Java, JavaScript 같은 언어들은 모두 이런 식으로 자동 메모리 관리를 해줍니다.

정리하면, self.head = self.head.next는 단순히 포인터만 옮기는 게 아니라, 실제로 원래 노드를 메모리에서 제거하는 완전한 pop 연산이에요. Python이 뒤에서 알아서 처리해주게 됩니다!

혹시 더 궁금한 점 있으면 언제든 물어보세요. 이런 깊이 있는 질문 정말 좋습니다!! 감사합니다

1

애롱

답변 감사합니다!! 저는 swift로 개발을 하고 있는데, swift의 ARC와 기능이 비슷한 것 같네요!

0

딩코딩코

오 넵!! 그렇네요 ㅎㅎㅎ 찾아보니 비슷한 원리로 메모리를 관리하는 것 같습니다 몰랐던 개념인데 알려주셔서 감사합니다 ㅎㅎ

수강평 이벤트

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