Algorithm(13)
-
[백준 9935번] 문자열폭발
https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 문제 접근 및 해결 방법 처음에 replace와 재귀를 이용해서 Java로 풀었는데 메모리 초과가 났다. 싸피분들과 리뷰를 하며 스택을 이용해야한다는 걸 알게 되었다. 백준 9935번 문자열 폭발과 유사해서 다시 풀어보았다. 마침 Go를 배우고 있어서 Go로 다시 풀어보았다. 풀면서 Go에 stack이 없어서 slice 개념을 이용해서 구현했다. 또한 풀면서 Go가 지원하는 자료형에..
2021.07.05 -
이분 탐색 (Parametric Search)
이분 탐색 알고리즘 수열 또는 정렬된 배열에서 주어진 기준값에 근접한 값, 즉 정답을 구하기 위해 범위를 반으로 줄여나가며 정답을 구하는 알고리즘이다. 본 알고리즘에서는 범위를 지정하는 시작점(left, start, low, ...)과 끝점(right, end, high, ...) 을 관리하는 두 가지 변수가 있다. 중앙값 mid는 수열에서는 중앙값, 배열에서는 중앙에 위치(인덱스와 관련)한 값이 된다. 이제 기준값을 중앙값 또는 중앙값으로 도출된 값, 즉 기준값과 비교한다. 1. 중앙값이 기준값보다 작을 경우 시작점(left, start, low, ...)을 [중앙값 또는 중앙 인덱스 + 1] 값으로 바꾼다. 2. 중앙값이 기준값보다 클 경우 끝점(right, end, high, ...)을 [중앙값 또..
2020.07.22