안녕하세요. 팰린드롬 만들기 문제를 풀고 있는 알고리즘 초보입니다. ㅠㅠ
계속 시간 초과 오류가 나는데 왜 그런지 정말 모르겠네요.
문제에서 제한이 50개의 길이 10만 짜리 string 까지 걸려있는데,
50개를 전부 무작위의 10만개의 character로 채워서 돌려도 1초만에 답이 구해지거든요..? 오답이 나오면 모르겠는데, 시간초과가 나오니까 답답하네요 ㅋㅋㅋ
일단 저는 입력받는 string을 S라고 하고, 그 문자열을 Text라는 2배의 길이를 갖는 character 배열에 역순으로 복사하는 방법을 씁니다. 역순으로 복사를 하는데 character 배열의 맨 마지막과 일치하면 일치한 이후 부터 글자의 끝까지 검사해서 모두 일치하면 바로 그 이전까지의 string만 역순으로 붙여주면 회문이 되는 방식으로 합니다.
제가 봤을 때는 복잡도도 k만큼이 순방향과 역방향 텍스트가 중복되지 않는 갯수라고 했을 때 O(k*n^2) 인것 같은데....
문제가 되는 테스트케이스라도 있는 걸까요?
Jinsanger
안녕하세요. 팰린드롬 만들기 문제를 풀고 있는 알고리즘 초보입니다. ㅠㅠ
계속 시간 초과 오류가 나는데 왜 그런지 정말 모르겠네요.
문제에서 제한이 50개의 길이 10만 짜리 string 까지 걸려있는데,
50개를 전부 무작위의 10만개의 character로 채워서 돌려도 1초만에 답이 구해지거든요..? 오답이 나오면 모르겠는데, 시간초과가 나오니까 답답하네요 ㅋㅋㅋ
일단 저는 입력받는 string을 S라고 하고, 그 문자열을 Text라는 2배의 길이를 갖는 character 배열에 역순으로 복사하는 방법을 씁니다. 역순으로 복사를 하는데 character 배열의 맨 마지막과 일치하면 일치한 이후 부터 글자의 끝까지 검사해서 모두 일치하면 바로 그 이전까지의 string만 역순으로 붙여주면 회문이 되는 방식으로 합니다.
제가 봤을 때는 복잡도도 k만큼이 순방향과 역방향 텍스트가 중복되지 않는 갯수라고 했을 때 O(k*n^2) 인것 같은데....
문제가 되는 테스트케이스라도 있는 걸까요?
10년 전