알고리즘
글 70편
2023
- LeetCode 133: 방문한 노드를 기억하며 그래프 복사하기
깊이 우선 탐색과 원본 노드에서 복제 노드로의 매핑을 사용한 Clone Graph 풀이입니다.
- LeetCode 208: 단어와 접두사를 구분하는 Trie 구현
문자별 자식 노드와 단어 끝 표시로 Trie의 삽입 및 검색을 구현한 기록입니다.
- LeetCode 230: BST에서 k번째로 작은 값 찾기
중위 순회로 방문 횟수를 세어 k번째 노드의 값을 저장하는 풀이입니다.
- LeetCode 530: BST 중위 순회로 가장 작은 차이 찾기
이진 탐색 트리를 오름차순으로 방문하며 이웃한 값의 차이를 비교하는 풀이입니다.
- LeetCode 162: 이분 탐색으로 Peak Element 찾기
중간 값과 오른쪽 값을 비교해 봉우리가 있는 구간을 좁히는 풀이입니다.
- LeetCode 1: HashMap으로 Two Sum의 두 인덱스 찾기
앞서 본 값과 인덱스를 저장해 합이 target이 되는 두 원소를 찾는 풀이입니다.
- LeetCode 155: 이전 최솟값을 함께 저장하는 Min Stack
스택에서 최솟값이 빠질 때 이전 최솟값을 복원하도록 구현한 기록입니다.
- LeetCode 125: 문자열을 뒤집어 팰린드롬 확인하기
영문과 숫자만 남긴 문자열을 뒤집어 원래 문자열과 비교한 풀이입니다.
- LeetCode 80: 정렬된 배열의 중복을 두 개까지 남기기
연속된 중복 횟수를 세어 같은 값을 최대 두 개만 남기는 풀이입니다.
- LeetCode 26: 정렬된 배열에서 중복을 하나씩만 남기기
마지막으로 남긴 값과 현재 값을 비교해 중복을 제거하는 풀이입니다.
- LeetCode 27: 같은 배열 안에서 특정 값 제거하기
남길 값만 배열 앞쪽으로 옮겨 유효한 길이를 반환하는 Remove Element 풀이입니다.
- LeetCode 88: 정렬된 배열을 뒤에서부터 합치기
배열을 합친 뒤 정렬하는 풀이에서 뒤쪽부터 비교해 채우는 풀이로 바꾼 기록입니다.
- 백준 1620번 나는야 포켓몬 마스터 이다솜: 이름과 번호로 조회하기
이름은 맵으로 번호는 리스트로 조회하고 입력에 숫자가 아닌 문자가 있는지 구분합니다.
- 백준 1074번 Z: 목표가 있는 사분면만 내려가기
Z 순서에서 앞선 사분면의 칸 수를 더하고 목표가 속한 영역만 재귀 탐색합니다.
- 백준 1003번 피보나치 함수: 0과 1의 출력 횟수 저장하기
피보나치 재귀 함수가 0과 1을 출력하는 횟수를 각각 누적해 구합니다.
- 프로그래머스 개인정보 수집 유효기간: 월 계산의 경계 처리하기
수집 날짜에 약관 개월 수를 더하고 오늘 날짜와 비교해 파기 대상을 찾습니다.
- 프로그래머스 로또의 최고 순위와 최저 순위: 지워진 번호 세기
확정된 일치 개수와 지워진 번호 개수를 나누어 최고 순위와 최저 순위를 구합니다.
- 백준 14940번 쉬운 최단거리: BFS 거리와 미방문 칸 구분하기
목표 지점에서 BFS로 거리를 채우고 도달하지 못한 땅과 원래 막힌 칸을 구분합니다.
- 백준 11659번 구간 합 구하기 4: 누적 합을 한 번 만들어 두기
누적 합 배열을 만들어 각 구간의 합을 두 값의 차이로 계산합니다.
- 백준 9375번 패션왕 신해빈: 종류별 선택 수 곱하기
옷을 종류별로 세고 입지 않는 선택을 더해 가능한 조합 수를 구합니다.