반례입니다.
원래 아래와 같이 출력되야 하는데, 16과 aaaaaaaaaaaaaaaa가 출력됩니다.
9252번 - LCS 2
오 일단 감사합니다.
그 문제 해결했습니다 쓸데없이 while문을 써서 그러더라구요...
근데 그래도 계속 틀렸다고 나옵니다 ㅜㅜ
첫 번째 문자열이 긴 경우, 두번째 문자열이 긴 경우, 다 확인해 봤고, 하나만 입력되었을 때, 그리고 나머지는 동일합니다...ㅜㅜ
@seonjoo2030 나머지는 스스로 해결해 보세요.
아~ 네네 어떤 것 때문에 그러시는지 알겠어요 ㅎㅎ
그리고 반례를 찾은 것 같습니다. 이게
CAPCAK
ACAYKP
ACAYKP
CAPCAK
댓글을 작성하려면 로그인해야 합니다.
seonjoo2030 5년 전 1
코드가 지저분해 보일 수 있지만, 그래도 예제 값 잘 나오고, 문자 하나일 때, 그리고
첫번째 문자열의 각각의 문자들에 대해서 두번째 문자열과 비교해 공통 부분 수열을 찾아내도록 했습니다.
예를들어,
ABCD
ERAB
인 경우, 첫 번째 문자열에서 A를 선택하고, 두번째 문자열에서 A로 시작하는 공통 부분 수열을 찾습니다.
그리고, B를 선택하고 다시 두번째 문자열에서 B로 시작하는 공통 부분 수열을 찾습니다.
이렇게 한 후에 각각의 수열을 저장하고 길이도 저장합니다.
마지막에 가장 긴 값을 찾아서 출력하도록 했는데 어떤 반례가 있는 것인지, 아니면 어디를 실수한 것인지 모르겠습니다 ㅜㅜ