| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- Envoy
- LongestPalindromicSubstring
- 알고리즘
- list of list
- 독후감
- 나는 아마존에서 미래를 다녔다
- Unique Paths
- 리트코드
- 리스트의 리스트
- leetcode
- BFS
- mysql #numa #swap #memory
- 규칙없음
- minimum path sum
- 트리
- 프로그래머스
- 삼성역량테스트
- 김태강
- Python
- 그거봤어?
- 삼성인 아마조니언 되다
- 아마조니언
- 와썹맨
- technical debt
- 파이썬
- 블린이
- 동적 프로그래밍
- Dynamic Programmin
- 기술적 채무
- No Rules Rules
- Today
- Total
목록전체 글 (53)
개발자가 되고 싶은 준개발자
문제 문자열이 주어지면 이를 키를 이용하여 해독하는 방법의 수를 리턴하는 문제이다. 해독하기 위한 키는 다음과 같다. 'A' -> 1 'B' -> 2 ... 'Z' -> 26 예) "12"는 "AB"나 "L"로 해독될 수 있다. (2가지 방법) "123"은 "ABC"나 "LC"나 "AW"로 해독될 수 있다. (3가지 방법) 풀이 이번 코드는 길이는 짧으나 직관적이지는 않은 것 같다. (더 좋은 방법이 떠오르면 추후에 수정해야 겠다!) 주어진 문자열을 순회하면서 1) 해당 인덱스(i)의 숫자가 1~9의 숫자인지 확인한다. 맞다면 i까지의 방법 개수는 i-1까지의 방법 개수와 같다. (이 문장이 이해가 가지 않는다면 예로 "89"를 생각해 보자. i가 1인 상황을 가정한다. "9"는 1~9의 숫자이므로 1번..
중고 서점에 책 구경하러 갔다가, 출간된지 1년이 아직 안 된 책 코너에서 이 책을 발견하여 집에 데리고 왔다. (나는 중고서점이 일반 서점보다 좋다. 개인적으로 일반 서점에는 모든 출간된 책들이 모여서 좋은 책을 골라내기가 어렵다고 생각한다. 이에 반해 중고서점에는 한번 선택된 책들이 모여 있어서 그런지 좋은 책을 고르기가 상대적으로 수월한 것 같다. 물론 부담없는 가격도 빠른 선택에 한 몫한다.) 제목에서 알 수 있듯이 이 책의 저자는 삼성에서 일하다가 아마존으로 이직을 했다. 책 전반이 삼성과 아마존에 대한 비교인데, 확실한 점은 저자가 아마존을 훨씬 더 좋아한다는 것이다. 대부분의 내용이 '삼성에서는 ~ 방식으로 일을 진행하는데, 이는 ~하기 때문에 좋지 않다. 아마존에서는 이와는 반대로 ~하게 ..
문제 왼쪽 상단 코너에서 오른쪽 하단 코너까지 각 칸에 적힌 수의 합이 최소인 경로를 구해라. 풀이 이 문제를 푸는 데 중요한 포인트는 특정 칸까지의 최소인 경로는 하나만 구하면 된다는 점이다. 그 경로가 어떤 경로인지는 중요하지 않고, 수의 합이 최소라는 점만 중요하다. 따라서 최소의 합을 내는 경로를 구했다면 그 최소의 합만 저장하고, 경로는 저장할 필요가 없다. 따라서 이 문제는 동적 프로그래밍으로 풀기에 적합하다. 각 칸까지의 경로의 최소 합을 저장하고, 다음 칸의 값을 구할 때 이전 값들을 사용하면 된다. 즉, dp[i][j] = min(dp[i-1][j], dp[i][j-1])+ grid[i][j]. (물론, 예외처리는 해주어야 한다.) 코드 class Solution(object): def ..