citizen   3년 전

총 N개의 문자열중에서 하나를 고르고 나머지 문자열( j == k 면 continue)중에서

합쳤을 경우 펠린드롬인지 아닌지 확인하도록 for문을 연속으로 두번 쓰는 방법을 썼습니다.

문자열의 길이가 len[k]+len[j]가 되므로

0번째 문자와 len[k]+len[j]-1번째 문자를..

1번째 문자와 len[k]+len[j]-2번째 문자를..

L번째 문자와 len[k]+len[j]-1-L번째 문자를 비교하도록 하였습니다.(L은 0부터 (len[k]+len[j])/2 까지)


틀린 케이스가 있으면 지적해주셨으면 합니다.

zych1751   3년 전

한 케이스당 한개의 문자열을 출력하여야 합니다.


1

4

a

aa

aaa

aaaa

의 경우 여러개의 문자열을 출력합니다.

citizen   3년 전

중복 고려해야 하나요?

39번째 줄을 빼버리면 1번째 문자열부터 N번째 문자열까지 자기 외에 것과 비교해서

팰린드롬이면 출력해버리게 되는데

제시해주신 예제대로면

aaa
aaaa
aaaaa
aaa
aaaaa
aaaaaa
aaaa
aaaaa
aaaaaaa
aaaaa
aaaaaa
aaaaaaa

가 출력이 되네요.

이게 맞는건가요?

zych1751   3년 전

답이 여러개가 존재하면 여러개 중 아무거나 1개만 출력하여야 합니다.

그래서 39번째 줄은 그대로 두고, 답을 발견하는 순간 출력하고 for문에서 탈출해야 합니다.

citizen   3년 전

제가 위에 쓴 예시에서 aaa만 출력되도 맞는 답이 되는 거군요.

도움주신 덕분에 해결했습니다.

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