반응형

2024/08/31 2

백준 9251 : LCS - javascript(문자열, dp)

문제 출처 https://www.acmicpc.net/problem/9251 정답 풀이 - 두 문자열의 공통 부분 수열 중 가장 긴 부분 수열을 찾는 것. - 부분 수열은 원래 문자열에서 문자를 순서를 유지한 채 일부를 선택하여 만든 문자열이다.  DP 접근 방법 - 두 문자열의 각 문자 쌍을 비교하면서 최장 공통 부분 수열을 점진적 계산 - 2차원 배열 사용 - 각 셀 DP[i][j]는 첫번째 문자열의 첫 i개 문자와 두번째 문자열의 첫 j개 문자를 비교했을 때의 LCS 길이를 나타낸다.  테이블 초기화 - DP[i][0]와 DP[0][j]는 0을 초기화한다. 왜냐하면 공백과 어떤 문자열을 비교하면 공통 부분 수열의 길이는 항상 0이다.  점화식 - str[i-1] 과 str[j-1]이 같으면 dp[i..

프로그래머스: 미로 탈출 명령어 - 실수 축제 (그래프 탐색에서 DFS와 BFS의 사용 )

아래 세가지 이유에 대해 알아보자.  - 그래프 탐색에서 DFS와 BFS 차이점- DFS: 스택, BFS:큐를 사용하는 이유 - 각 기법을 언제 사용하는지  ## DFS와 스택 dfs는 그래프 탐색 시 "한 방향으로 끝까지 탐색하고, 더이상 갈 곳이 없으면 되돌아와서 다른 경로를 탐색하는" 방법이다.이 방법은 재귀적인 탐색을 요구한다. ### 스택을 사용하는 이유 - LIFO(Last In First Out) : 스택은 마지막에 삽입된 요소를 가장 먼저 꺼내는 자료구조다. dfs에서는 가장 최근에 발견된 노드를 먼저 탐색해야 하기 때문에, 노드를 탐색하면서 경로를 쌓아두었다가 더이상 갈 곳이 없을 때 되돌아가는데 적합하다.   dfs에서 A 에서 출발해서 E를 찾는 과정을 살펴보자. A에서 출발하여 B로..

반응형