유형 : 구현

풀이 시간 : 15분

 

def solution(s, skip, index):
    answer = ''
    slist, skiplist = [ord(x) for x in list(s)], [ord(x) for x in list(skip)]
    a = ord('a')
    
    for i in range(len(slist)):
        newi = slist[i]
        cnt = 0
        while True:
            newi = (newi + 1 - a) % 26 + a  
            if newi not in skiplist:
                cnt += 1 
            if cnt == index:
                break
        slist[i] = newi
    return ''.join([chr(x) for x in slist])

 

우선 s와 skip 모두 ord로 숫자 변환

slist의 글자 하나하나에 대해 아래 과정을 수행해 결과값을 얻는다. 

 

cnt = 0으로 시작, newi를 +1씩 늘린 알파벳 값으로 갱신해나가며 newi가 skiplist에 있는 경우에는 cnt를 늘리지 않음

cnt == index가 되면 종료

 

=> 이렇게 얻은 newi 값으로 slist 값을 수정 

복사했습니다!