seonjoo2030   5년 전

코드가 지저분해 보일 수 있지만, 그래도 예제 값 잘 나오고, 문자 하나일 때, 그리고 

첫번째 문자열의 각각의 문자들에 대해서 두번째 문자열과 비교해 공통 부분 수열을 찾아내도록 했습니다. 

예를들어,

ABCD

ERAB

인 경우, 첫 번째 문자열에서 A를 선택하고, 두번째 문자열에서 A로 시작하는 공통 부분 수열을 찾습니다. 

그리고, B를 선택하고 다시 두번째 문자열에서 B로 시작하는 공통 부분 수열을 찾습니다. 

이렇게 한 후에 각각의 수열을 저장하고 길이도 저장합니다. 

마지막에 가장 긴 값을 찾아서 출력하도록 했는데 어떤 반례가 있는 것인지, 아니면 어디를 실수한 것인지 모르겠습니다 ㅜㅜ

eric00513   5년 전

반례입니다.

원래 아래와 같이 출력되야 하는데, 16과 aaaaaaaaaaaaaaaa가 출력됩니다.

seonjoo2030   5년 전

오 일단 감사합니다.

그 문제 해결했습니다 쓸데없이 while문을 써서 그러더라구요...

근데 그래도 계속 틀렸다고 나옵니다 ㅜㅜ

첫 번째 문자열이 긴 경우, 두번째 문자열이 긴 경우, 다 확인해 봤고, 하나만 입력되었을 때, 그리고 나머지는 동일합니다...ㅜㅜ

eric00513   5년 전

@seonjoo2030 나머지는 스스로 해결해 보세요.

eric00513   5년 전

죄송합니다 제가 말씀드린 반례는 문제에 어긋나는 반례입니다

seonjoo2030   5년 전

아~ 네네 어떤 것 때문에 그러시는지 알겠어요 ㅎㅎ

그리고 반례를 찾은 것 같습니다. 이게 

CAPCAK 

ACAYKP

ACAYKP

CAPCAK 


이렇게 순서만 바꿔서 입력해보니까 결과가 다르더군요...ㅜㅜ

그리고 LCS 알고리즘이라고 해서 인터넷에 돌아다니는게 있는데 그런 알고리즘은 따로 공부하고 풀어야 하는건가요?
사실 제가 혼자 공부하는 입장이라 어떤 알고리즘에 대한 공식이 있는 걸 확인하면 약간 멍 해집니다 ㅋㅋ

너무 무턱대고 하는 건 아닌가 하는 생각도 들구요.,..

댓글을 작성하려면 로그인해야 합니다.