일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- array
- heap
- VCS
- Java
- Union Find
- sorting
- dfs
- LinkedList
- 자료구조
- stack
- graph
- hash
- greedy
- Leedcode
- ArrayList vs LinkedList
- Hashtable
- Easy
- String
- Medium
- DailyLeetCoding
- python3
- leetcode
- hash table
- A* Algorithm
- Two Pointers
- Bellman-Ford
- 광연자동차운전면허학원
- 구현
- SinglyLinkedList
- BFS
- Today
- Total
목록stack (3)
Min IT's Devlog
풀이 일자: 23.05.17 난이도: [Medium] 분류: [Linked List, Two Pointers, Stack] 문제 내용 오늘의 문제는 LinkedList가 주어졌을 때 i번째 노드와 n-1-i번째 노드를 twin이라고 했을 때 여러 twin들이 등장할 텐데 이 twin내의 노드값의 합이 최대가 되는 값을 리턴하는 문제이다. 문제 해결 흐름 1. 가장 간단하게 array에 값을 저장해놓고 값을 확인했다. class Solution: def pairSum(self, head: Optional[ListNode]) -> int: arr = list(); while head: arr.append(head.val); head = head.next; ans = 0; n = len(arr) for i i..
풀이 일자: 23.04.12 난이도: [Medium] 분류: [String, Stack] 문제 내용 절대경로를 간단한 캐노니컬 경로로 바꿔서 리턴하는 문제였다. 문제 해결 흐름 1. 가장 먼저 떠오른 방법은 path의 글자를 하나씩 읽어가면서 stack에 넣고 ..와 .에 따라 처리해주는 방법이었다. => 결과는 여러 경우의 수를 따져가면서 처리를 하나씩 해줬는데 실패였다. 이런 예외사항을 고려하면 다른 게 또 걸리고 그런 식이었다. 다른 방식을 생각해보자. 예외의 경우 /./..stack /hi///.././.. class Solution: def simplifyPath(self, path: str) -> str: ans = ['/']; dotCnt = 0; for s in path: if s == '..
Stack 선형 자료구조 한 쪽 끝에서 자료를 넣고 뺄 수 있는 LIFO구조의 자료구조 사용 분야: 함수 호출 순서의 제어, 인터럽트 처리, 수식 계산, 재귀적 문제를 동적 프로그래밍 방식으로 해결 멤버변수: top(현재 위치) Stack 사용법 import java.util.Stack; 자바는 java.util.Stack Class를 통해 Stack을 제공하고 있다. Stack 선언 Stack s = new Stack(); Stack의 경우 생성자가 하나뿐이다. Stack 메서드 데이터 삽입 stack.push(E element); // element를 stack의 top에 추가 데이터 삭제 stack.pop(); // 스택의 제일 위에 있는 element를 반환하고 스택에서 제거 데이터 검색 stac..