Advent of Code | Day 3 and Day 4 Explained | JavaScript / TypeScript
- 배터리 뱅크 문자열을 숫자 배열로 변환하여 처리합니다. 🔢
- 첫 번째 최대값은 마지막 숫자를 제외한 범위에서 찾고, 두 번째 최대값은 첫 번째 최대값 이후의 범위에서 찾습니다. 🔍
- 찾아낸 두 숫자를 조합하여 두 자리 숫자를 만들고, 모든 뱅크의 이 숫자를 합산합니다. ➕
- 총 12개의 숫자를 찾아야 하며, 각 숫자를 선택할 때 남은 12자리 숫자를 완성할 수 있도록 검색 범위를 동적으로 조정합니다. 🧩
- 외부 루프는 '필요한' 남은 자릿수(11부터 0까지)를 기준으로 반복됩니다. 🔄
- 내부 루프는 이전 최대값 인덱스 다음부터
(전체 길이 - 필요한 자릿수)까지의 범위에서 현재 최대값을 찾습니다. 📏
- 이러한 동적 검색 범위 조정 덕분에 O(11 * N)의 효율적인 시간 복잡도로 문제를 해결합니다. 🚀
- JavaScript/TypeScript를 사용하여 Advent of Code 챌린지를 해결합니다. 💻
- Node.js 환경에서 코드를 실행하며, TypeScript의
notnull 어설션을 활용합니다. ✅
- 라이브 스트림에서 몇 시간 동안 고심한 끝에 해결책을 찾았으며, 의사 코드(pseudo-code) 작성이 복잡한 로직을 명확히 하는 데 큰 도움이 되었습니다. 💡
- Day 4의 문제 설명은 제공된 스크립트에 포함되어 있지 않습니다. ❓
데브허브 | DEVHUB | Advent of Code | Day 3 and Day 4 Explained | JavaScript / TypeScript