일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- No Rules Rules
- 파이썬
- 아마조니언
- 그거봤어?
- 알고리즘
- 삼성역량테스트
- LongestPalindromicSubstring
- leetcode
- Python
- 리트코드
- Unique Paths
- minimum path sum
- 독후감
- BFS
- Envoy
- 나는 아마존에서 미래를 다녔다
- Dynamic Programmin
- 규칙없음
- technical debt
- 김태강
- 와썹맨
- 리스트의 리스트
- list of list
- 동적 프로그래밍
- 삼성인 아마조니언 되다
- 트리
- 블린이
- mysql #numa #swap #memory
- 프로그래머스
- 기술적 채무
- Today
- Total
목록알고리즘 (3)
개발자가 되고 싶은 준개발자

문제 레벨 별로 다른 순서(왼쪽->오른쪽, 오른쪽->왼쪽)로 이진 트리(Binary Tree)를 순회하라. 풀이 쉬울 줄 알았는데 생각보다 통과하기가 어려웠다. 기본적인 알고리즘은 이전 포스트인 이진 트리를 BFS(너비 우선 탐색) 방식으로 레벨별로 순회하는 알고리즘과 비슷하다. (june-coder.tistory.com/16?category=913762) [LeetCode] 102. Binary Tree Level Order Traversal 풀이 및 코드 문제 트리를 level 순으로 순회하여 각 레벨 별 노드의 값을 리턴한다. 풀이 이 문제는 트리를 level 순으로 순회하는 문제이기 때문에 BFS(너비 우선 탐색)가 적합하다. 트리의 루트부터 leaf까지 순� june-coder.tistory.c..

문제 이전 글에서 푼 Unique Paths(https://june-coder.tistory.com/5?category=913762)에 약간의 제약사항이 추가된 문제이다. 이전에는 시작점에서 도착점까지 가능한 경로의 개수를 구하면 되었지만, 이번 문제에서는 지도에 방해물이 추가된다. 따라서 방해물을 지나지 않는 경로의 개수를 세어야 한다. 풀이 문제 자체는 평이했다. 이전 문제를 푼 방법대로, 특정 지점의 윗 칸과 왼쪽 칸의 경로의 개수를 합하면 된다. 이 문제에서는 방해물이 있기 때문에 왼쪽이나 위에 방해물이 있으면 해당 경로로는 오지 못하는 것을 의미하기 때문에 그 경로를 제외한 나머지 경로를 구하면 된다. 그러나 약간 어려웠던 부분은 예외 처리이다. 만약 [[1]]와 같은 입력이 들어온다면 답은 무..

동적 프로그래밍 카테고리에 있는 문제로 가장 긴 앞뒤가 같은 문자열을 찾는 문제이다. 풀이 동적 프로그래밍으로 문제를 풀기 위해서는 계산한 결과를 저장하여 다음에 '재사용'하여야 한다. Palindrome은 앞뒤가 같은 문자열로, 전체가 palindrome이면 부분도 palindrome이다. "abcba"로 예를 들어보자. "abcba"가 palindrome이면, "bcb", "c"도 모두 palindrome이다. 따라서 작은 문제부터 풀고, 큰 문제는 +𝛂만 추가로 확인하면 된다. 우선 가장 가운데의 "c"가 palindrome인지 확인하고, 맞다면 그 양 옆의 문자인 "b"를 추가로 확인한다. 양 옆의 문자가 같다면, 이 또한 palindrome이다. 그러면 다시 그 양 옆의 문자를 확인하는 식으로 ..