본문 바로가기
Python/코테 연습

둘만의 암호

by soojitasan 2024. 8. 11. 16:23
## 🔒 문제. 둘만의 암호
def solution(s, skip, index):
    answer = ''

    ## 알파벳 리스트 생성 (아스키 코드)
    alpha = [chr(i) for i in range(97, 123)]

    ## 생성한 알파벳 리스트에서 skip할 알파벳 제외
    alpha = list(set(alpha) - set(skip))
    alpha.sort()

    ## 변환 (s의 문자열에 index값 만큼 순서를 미룬다)
    for j in s:
        idxx_old = alpha.index(j)    ## index 추가 전 값
        idxx_new = idxx_old + index  ## index 추가 후 값

        ## 단, 새로운 알파벳 위치 값이 z의 위치를 넘어가는 경우 다시 앞에서부터 돌아가기
        if  idxx_new >= len(alpha):
            idxx_fin = idxx_new % len(alpha) ## 반례 : print(solution("abcd", "efghijklmnopqrstuvwxyz", 20))
        else:
            idxx_fin = idxx_new

        answer = answer + str(alpha[idxx_fin])

    return answer

#print(solution("abcd", "efghijklmnopqrstuvwxyz", 20))
#print(solution("aukks", "wbqd", 5))
#print(solution("aceg", "bf", 1))