[백준 1120] 문자열
주어진 조건을 충족하는 것에만 집착하면 눈 앞의 쉬운 방법을 놓치기 쉽습니다.
두 개의 문자열 A와 B가 2개의 조건과 함께 주어집니다.
- A의 앞에 아무 알파벳이나 추가
- A의 뒤에 아무 알파벳이나 추가
이 조건들 때문에 A의 앞뒤를 어떻게 처리해야 하는지 고민할 수도 있습니다.
하지만 이 문제는 다음 하나의 문장으로 요약할 수 있습니다.
A와 B의 차이를 최소로 하는 것이 목표이므로,
반복문을 통해 문자열 비교를 하여 둘의 차이가 최소가 되는 때를 구하면 된다.
다음과 같은 예시를 살펴봅시다.
A = koder, B = topcoder라고 했을 때
(topco)der -> 차이: 4
t(opcod)er -> 차이: 5
to(pcode)r -> 차이: 5
top(coder) -> 차이: 1
즉, A의 앞에 ‘top’을 붙였다고 생각하는 경우에 B와의 차이가 1로 최소가 됩니다.
위의 경우에서 알 수 있듯이 A의 앞뒤에는 그 어떠한 문자를 붙이더라도 허용되기 때문에
조건을 따로 고려할 필요 없이 A와 B의 문자열 비교를 수행하면 됩니다.
처음부터 끝까지 전부 살펴보는 Brute-Force Algorithm을 사용합니다.
문제 : 백준 1120 - 문자열