강의로 돌아가기
유정현

"AB" 실행값이 "BC"가 나와야 하는데 "CB"가 나옵니다.

n=1로 하고, AB를 따로따로 테스트 했을 때는 각각 B,C로 올바른
결과값이 나오는데 둘이 같이 붙여놓으면 CB가 나옵니다.ㅠㅠ
혹시나 해서 BC를 했는데 이 때의 결과도 CD가 아니고 DC가 나옵니다.
저는 둘의 순서가 바꿔서 나오는 줄 알았는데,
BCDE를 테스트 시키면, CDEF가 아니라 FCDE가 나옵니다.
ㅠㅠ 왜 맨 마지막 글자만 저렇게 앞으로 나올까요? 코드 처음부터 5번정도 다시 풀어봤는데,
왜 저런 결과가 나오는 지 모르겠습니다ㅠㅠ 코드 첨부하겠습니당!

def solution(s, n):

low = 'abcdefghijklmnopqrstuvwxyz' #소문자
lower = ",".join(low).split(",") #소문자 리스트

upp = low.upper() #대문자
upper = ",".join(upp).split(",") #대문자 리스트

string = ",".join(s).split(",") #받은 문자열 리스트로 변환

for i in string:
    if i in lower:
        #out of range 일 때 index 조정
        if ((lower.index(i))+n) > (len(lower)-1):
            string[string.index(i)]=lower[((lower.index(i))+n)-len(lower)]
        else:
            string[string.index(i)]=lower[(lower.index(i))+n]

    elif i in upper:
        #out of range 일 때 index 조정
        if ((upper.index(i))+n) > (len(upper)-1):
            string[string.index(i)]=upper[((upper.index(i))+n)-len(upper)]
        else:
            string[string.index(i)]=upper[(upper.index(i))+n]

return "".join(string)
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.