스택의 Push, Pop => 리스트의 Add, RemoveAt(list.Count-1) 로 대체 가능하고
스택이 제공하는 모든 기능은 리스트도 가능한데다
심지어 리스트는 인덱스를 사용해서 요소에 접근 할 수도 있는데
스택이 리스트보다 더 좋은 경우가 있나요?
스택의 Push, Pop => 리스트의 Add, RemoveAt(list.Count-1) 로 대체 가능하고
스택이 제공하는 모든 기능은 리스트도 가능한데다
심지어 리스트는 인덱스를 사용해서 요소에 접근 할 수도 있는데
스택이 리스트보다 더 좋은 경우가 있나요?
님 RemoveAt()이 O(N)일수도 있다는 생각은 안해봄?
RemoveAt은 리스트의 마지막 요소를 삭제하는 경우 시간 복잡도가 O(1) 이라는 사실은 모름?
그니까 꼭 그렇게 구현되어있다고 어떻게 확신함?
https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.removeat?view=net-8.0
doc찾아봤는데 딱히 맨뒤를 뽑는다고 O(1)이라 보장되지는 않네
This method is an O(n) operation, where n is (Count - index). 공식 문서에도 O(N)이라 써져있구만 뒤질래? ㅋㅋ
아 list면 Count-index라 O(1)맞네
그렇네 내 눈에 이상이 있었네
머쓱
ㅇㅇ(210.103) This method is an O(n) operation, where n is (Count - index). 공식 문서에도 O(N)이라 써져있구만 뒤질래? ㅋㅋ ===================================== 왜 지가 문서 제대로 안읽어 놓고서 혼자 발끈함? ㅋㅋㅋ 이상한 사람이네
님 처음 제목에 [C#] <- 이거 빼놓은 상태에서 RemoveAt이 보통 O(N)인데 본문 같은 소리를 하고 있었으니까 딱밤 마려웠음
ㄴ 뭐라는거야... 처음부터 제목에 C# 적어놨는데. 님이 전적으로 잘못 읽고 오해한거니까 님 머리를 치던가 ㅎ
자료구조 공부하고와라
deque는 스택 큐 상위호환인데 왜 스택이나 큐 쓰냐는거랑 똑같은 질문 아님?
그죠 딱히 차이없음
아마 스택이 메모리를 덜 씀
명확하잖아. 굳이 List말고 Stack으로 선언했다? 읽는사람이 '와 이거 이새끼 진짜 스택 100% 활용하려하네' 하겠지. 그런데 List로선언한다? 얘가 그냥 배열에 있는 기능 좀 편하게 쓰려고 List로쓴건지 Stack쓰려고했는지 알려면 코드 쭉 봐야함 ㅋㅋ
납득이 가네요!
그러면 int string 쓰지말고 상위호환 object 쓰지 그러냐 스택도 용도가 확실하고 리스트보다 좀더 빠른데 굳이 써야겠니
애초에 스택은 adt인데 리스트는 구현방법임.. 비교하는게 잘못됨
ㄹㅇㅋㅋ
그래서 파이썬에는 list만 있잖아