
트리 기본 문제, 이진 트리의 최대 깊이를 구하는 문제. 1️⃣ 내가 푼 풀이 모범 풀이는 아니지만 나름대로 코드를 설계하고 코드의 동작 및 단점에 대해 리팩터링한 내용을 담았다. 그 후 2️⃣3️⃣ 책에 나온 모범 풀이 2가지를 학습하였다.(BFS, DFS 방식)
2차원 배열 구간 합의 최적화 주어진 N*M 크기의 행렬에서 특정 구간 (i, j)부터 (x, y)까지의 합을 여러 번(총 K번) 구하는 문제. 브루트포스 O(K*NM) / 누적합(Prefix sum) O(NM) + O(K)
프로그래머스 숫자짝꿍 Counter, join(), list1.append(), list1.extend() 코드업 (기초-리스트) 이상한 출석 번호 부르기1
프로그래머스 Lv.1 문제 두 정수 사이의 합과 정수 제곱근 판별을 통해 다양한 접근법과 Python 언어적 특징을 살펴봤다. sum(range()), 수열의 합 공식, 삼항 연산자, 리스트 컴프리헨션, 논리 연산자 등을 통해 단순한 문제 코드 짧게 풀기.

리트코드 01 Matrix 문제. 초기 시도 시간초과 뜬 이유와 개선해서 푼 풀이, 리팩터링한 풀이, 다른 알고리즘을 사용한 풀이 (총 3가지 정답 풀이)

Leetcode 108를 풀고 내 코드와 책 코드 비교. 문제 설명 : 정렬된 배열의 이진 탐색 트리(BST) 변환.정렬된 배열을 받아 높이 균형 이진 탐색 트리로 변환하라. 높이 균형이란 모든 노드의 두 서브 트리 간 깊이 차이가 1 이하인 것을 말한다.

난이도는 Easy라고 적혀있지만 BST의 의미 자체를 넘어서 BST에 대한 이해도를 높여준 문제이다. 이진 탐색 트리 노드 값 간 차이의 최솟값 구하는 문제. 실패 코드, 성공 코드, 문제 의도에 맞는 풀이 코드 분석. 자바 트리 순회(전위, 중위, 후위 순회)

이진 탐색 트리가 주어졌을 때 low 이상 high 이하의 값을 지닌 노드의 합을 구하는 문제. 내 풀이 코드와 단점, 책에 나온 풀이법 4가지. 1) DFS로 브루트 포스 탐색(내 코드랑 비슷), 2) DFS 가지치기, 3) 반복구조 DFS, 4) BFS

책에 나온 모범 풀이이다.

C는 bias를 이용한 투 포인터로 0ms. Python은 리스트 투 포인터 또는 deque 사용. 리스트의 pop(0)은 O(n)이지만 deque의 popleft()는 O(1). 리스트는 동적 배열->맨 뒤 삽입/삭제만 O(1).파이썬 슬라이싱은 C 최적화로 빠름.
백준 20055 '컨베이어 벨트 위의 로봇' 문제 풀이와 AI 코드 비교. 🤖 deque를 활용하여 컨베이어 벨트의 회전과 로봇의 이동을 시뮬레이션하는 문제. 로봇 이동 후 내리는 위치(N-1)의 로봇을 처리하는 부분 중요‼️종료 조건 확인 방식 차이 비교.
카카오 2019 인턴 코딩 테스트 튜플(프로그래머스 Lv. 2) 풀이 3가지

defaultdict()는 인자로 주어진 객체의 기본값을 딕셔너리의 초기값으로 지정함. string의 경우 첫 글자의 주소값으로 참조를 하기에 원본이 변경되면 안되므로 스트링 타입에는 sort()라는 메서드가 없음. 대신 sorted(s)를 써야 함. 리스트를 리턴함.

파이썬 문자열 슬라이싱은 범위가 넘어가도 에러가 나지 않음! 그냥 가능한 범위까지만 잘라서 반환함. 시작 위치 자체가 문자열 밖이라면 빈 문자열을 반환함. 물론 문자열 인덱싱의 경우는 범위를 넘으면 IndexError가 발생.📌max(a,b,c, key=len)

carry, val = divmod(s+carry, 10)

기초 문제. 풀이 세 가지.