- 스택: lifo, 큐: fifo - 파이썬 리스트는 스택과 큐의 모든 연산 수행 가능 - 그러나 성능을 고려한다면 큐는 데크를 사용해야 좋음 - 스택 ADT에서는 차곡차곡 쌓이지만, 실제 연결리스트로 구현 시 무작위로 배치되고 포인터로 처리 ※ 참고: 클래스의 메소드에서 self는 인스턴스 자체, 인스턴스로 메소드 호출하면 자동으로 인스턴스(self) 인자로 넣음 20. valid parentheses - 딕셔너리 활용 - 스택에 왼 괄호 쌓기 316. remove duplicate letters - 재귀(분리 가능하냐로 접근) - 스택에 문자 쌓으면서 비교 - collections.Counter() 739. daily temperatures * [0] * len(T) - 스택에 인덱스 쌓으면서 온도..
CS/algorithm & data structure
234. palindrome linked list - 리스트로 변환 - 데크 - 런너 * 다중할당: 동시에 일어남 21. merge two linked lists - 재귀 (함수 안에서 다시 함수 호출) - 괄호가 연산순위 제일 높음 206. reverse linked list - 재귀 - 반복 - 내 풀이: 런너 2. add two numbers - 연결 리스트 만들때 더미 노드 생성 필수 - 전가산기 응용 - divmod() * map() * functools 모듈(reduce 메소드) * operator 모듈(add, mul 메소드) ※ b가 a를 참조할 때, a가 가변객체인 경우(list, set, dict) b에서 값을 조작하면 두 객체 모두에게 적용 (불변객체인 경우 b는 더이상 a를 참조하지..
1. two sum - brute force - in - enumerate - 투포인터로는 인덱스 엉망 42. trapping rain water - 투포인터 - 스택(변곡점) 15. 3 sum - brute force (x) - 투포인터 ※ 투포인터는 주로 정렬된 배열을 대상으로 두개의 포인터가 좌우로 자유롭게 움직이며 풀이 561. array partition 1 - 오름차순 - 슬라이싱 238. product of array except self - 왼쪽 곱셈 결과 저장 후 오른쪽 곱셈 결과 차례로 곱하기 121. best time to buy and sell stock - brute force(x) - sys.maxsize, float('inf') - 저점과 현재값 차이 카운팅
125. valid palindrome - str.isalnum()이나 정규식으로 전처리 - 데크로 최적화 - pop()이나 슬라이싱으로 판별 344. reverse string - 투포인터로 스왑 - list.reverse() - s[:] 937. reorder log files - str.isdigit() - 람다 표현식, 리스트 + - list.sort(key=) 819. most common word - 정규식으로 전처리 - collections.defaultdict(int), collections.Counter() 49. group anagrams - ''.join() - collections.defaultdict(list) 5. longest palindrome substring - 투포인터 ..