문제 출처 Lv.4 자동완성 - JavaScript https://school.programmers.co.kr/learn/courses/30/lessons/17685 문제 설명 포털 다음에서 검색어 자동완성 기능을 넣고 싶은 라이언은 한 번 입력된 문자열을 학습해서 다음 입력 때 활용하고 싶어 졌다. 예를 들어, go 가 한 번 입력되었다면, 다음 사용자는 g 만 입력해도 go를 추천해주므로 o를 입력할 필요가 없어진다! 단, 학습에 사용된 단어들 중 앞부분이 같은 경우에는 어쩔 수 없이 다른 문자가 나올 때까지 입력을 해야 한다. 효과가 얼마나 좋을지 알고 싶은 라이언은 학습된 단어들을 찾을 때 몇 글자를 입력해야 하는지 궁금해졌다. 예를 들어, 학습된 단어들이 아래와 같을 때 go gone guild..
트라이(Trie) 알고리즘 트라이는 문자열들을 저장하고 효율적으로 탐색할 수 있는 트리 기반의 자료구조입니다. 특히, 자동 완성, 사전 검색 등의 기능에 유용하게 사용됩니다. 기본 구조 트라이의 각 노드는 알파벳을 키로 가지는 자식 노드들의 맵(또는 배열)과, 문자열의 끝을 나타내는 플래그로 구성됩니다. 1. 트라이 노드 정의 class TrieNode { constructor() { this.children = {}; this.isEndOfWord = false; } } 2. 트라이 클래스 정의 class Trie { constructor() { this.root = new TrieNode(); } // 문자열 삽입 insert(word) { let node = this.root; for (let ch..
목차 문제 출처 문제 설명 제한 조건 정답 문제 출처 Lv.3 표현 가능한 이진트리 - JavaScript https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 당신은 이진트리를 수로 표현하는 것을 좋아합니다. 이진트리를 수로 표현하는 방법은 다음과 같습니다. 이진수를 저장할 빈 문자열을 생성합니다. 주어진 이진트리에 더미 노드를 추가하여 포화 이진트리로 만듭니다. 루트 노드는 그대로 유지합니다. 만들어진 포화 이진트리의 노드들을 가장 ..
목차 문제 출처 문제 설명 제한 조건 정답 문제 출처 Lv.3 미로 탈출 명령어 - JavaScript https://school.programmers.co.kr/learn/courses/30/lessons/150365 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 n x m 격자 미로가 주어집니다. 당신은 미로의 (x, y)에서 출발해 (r, c)로 이동해서 탈출해야 합니다. 단, 미로를 탈출하는 조건이 세 가지 있습니다. 1. 격자의 바깥으로는 나갈 수 없습니다. 2. (x, y)에서 (r, c)까지 이동하는 거리가 총 k여야 합니다. 이때..