강의로 돌아가기
Jeon-JongChan

테스트 17,18 요구조건이 뭐죠

짜증나네요...효율성이랑 이런거 다 통과했는데
17,18만 통과를 못하고 있습니다...
무슨 부분이 틀린지 알면 해결해낼텐데 조건을 모르니 고칠 수가 없네요...
그냥 구글링해서 답을 찾고 만족하는게 나을까요 ㄷㄷ

def solution(pelindrome):
    #pelindrome = input("input a pelindrome string : ")
    pelindromeLen = len(pelindrome)
    maxPelindromeLen = 0
    checkStatus = True
    if not pelindrome.islower() and not pelindrome.isalpha() and pelindrome.isspace():
        return 0

    if pelindromeLen > 1 and pelindromeLen <= 2500:
        for i in range(pelindromeLen - 1,0,-1) : #검사해야되는 개수를 증가. i 는 검사 char 수 - 1 .
            #stackLen = math.ceil(i / 2)
            for j in range(0,pelindromeLen - i): #검사 char 수에 따라 회문 검사 횟수가 달라진다. j는 검사시작할 문자의 인덱스 수와 같다.
                temp = 0
                for k in range(j,j+(i + 1)):
                    if pelindrome[k] != pelindrome[j + i - temp] or k >= pelindromeLen and j + i - temp < 0:
                        checkStatus = False
                        break
                    temp += 1

                if checkStatus:
                    maxPelindromeLen = i+1
                    return maxPelindromeLen
                checkStatus = True
    else :
        return -1
    return maxPelindromeLen

17의 테스트 조건은 펠린드롬 길이가 1일때 값 1을 출력하는거 같습니다.

2 개의 답변
Jeon-JongChan

풀었습니다.
17은 길이가 1일때
18은 길이가 0일때 반환값을 주는거네요.
근데 파이썬은 닥치고 안됨....
자바스크립트로 동작시키니 되네요 정말 빡치네요

  • alsavior
    저도 18번만 안되는데 길이가 0일때는 로컬에서는되거든요 ㅠㅠ 파이썬은 18번 케이스 통과가 안되나요? alsavior 2018.12.26 17:20
  • 조소영
    혹시18번해결하셨나요? 조소영 2019.02.22 18:51
  • Petrus Kim
    기본적으로 반환 값이 1이라서, 0은 없습니다. 무조건 return 1; 하면, 17, 18번은 통과합니다. Petrus Kim 2019.06.05 11:15
YooSangwon

maxPelindromeLen = 1
로 수정해보세요. 17,18번은 길이가 1인 경우인데, 이 코드는 0으로 출력되어서 통과가 안되네요.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.