[DS] trie 구현

문제 링크 11478 서로 다른 부분 문자열 해당 문제를 substr + set을 이용하여 중복을 제거함으로써 문제를 풀 수 있다. 다만 이 방식으로 문제를 풀 경우, 호출 횟수 및 시간복잡도가 substr(500500) + set(log(500500)) 이렇게 되기 때문에 꽤나 오래 걸리게 된다. 따라서 시간을 줄이기 위한 풀이로 trie를 구현하여 풀 수도 있다. trie 구현 풀이 reference https://melonicedlatte.com/algorithm/2018/08/12/230648.html

2022년 7월 6일
·
0개의 댓글
·

[백준] 1300번 K번째 수

문제 바로가기 난이도 골드2 시간제한 2초 메모리 제한 128MB 📚 해설 및 코드 ✏️ 문제 접근 문제에서의 B[k] = x는 B배열의 k번째 인덱스가 x라는 의미이다. 이를 반대로 해석하면 x 보다 작거나 같은 element의 개수는 k개라는 의미로도 해석이 가능하다. (B배열은 오름차순으로 정렬되어 있기 때문이다) 그러면 우리는 x의 값을 조정하면서(이분탐색) 문제에서 원하는 정답을 찾으면 된다. ✏️ x를 이용해 k값 찾기 ✏️ x의 후보 left : 1

2022년 5월 15일
·
0개의 댓글
·

[Algo] 최단거리 알고리즘

대표적인 최단 거리 알고리즘 다익스트라 알고리즘 벨만 포드 알고리즘 플로이드 와샬 알고리즘 > 최단거리 알고리즘은 대표적으로 3가지가 있는데, 각각의 알고리즘마다 시간복잡도, 사용가능 상황 등의 차이점이 조금씩 있다. 다익스트라 (Dijkstra algorithm) 제한사항 : 모든 가중치가 음이 아닌 값을 가지고 있어야 함. 결과 : 한 정점에서 다른 모든 정점의 최단거리를 알 수 있음. 시간복잡도 : O(E * logV) 음의 가중치를 포함하지 못하는 이유 [벨만 포드와의 차이점](https://velog.io/@kimdukbae/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%

2022년 4월 2일
·
0개의 댓글
·

[백준] 2615번 오목

문제 접근 2615번 오목 바로가기 사용 알고리즘 완전 탐색 + DFS 방향 설정 오목인지 판단을 하기 위해선 한 점에 대해서 총 8방향을 봐야한다. 하지만 2중 for문을 사용할 때, 위에서 아래 / 왼쪽에서 오른쪽으로 탐색을 하게 된다면, 파란색을 칠해진 방향에 대해선 볼 필요가 없다 (중복되기 때문) 5목 판단 DFS 시작 2중

2022년 3월 26일
·
0개의 댓글
·