https://school.programmers.co.kr/learn/courses/30/lessons/155652
def solution(s, skip, index):
result = []
for word in list(s) :
word_cnt = ord(word)
for i in range(1,index+1):
if word_cnt >= 122 :
word_cnt -= 26
if chr(word_cnt+i) in list(skip) :
word_cnt += 1
word_cnt += index
if word_cnt >= 122 :
word_cnt -= 26
result.append(chr(word_cnt))
# print(result)
answer = ''.join(s for s in result)
return answer
s = 'zzxas'
skip = 'wbqd'
index = 5
res = solution(s,skip,index)
print(res)
처음 푸려고 했던 미련한 방식
chr과 ord를 이용하려 했으나 오류가 났고, 구글링을 통해서 index와 나머지를 활용해서 최적화를 하는 방법을 찾았다.
def solution (s,skip,index):
answer =""
idx=0
alphabet = "abcdefghijklmnopqrstuvwxyz"
for ch1 in skip:
if ch1 in alphabet:
alphabet = alphabet.replace(ch1,"")
print(alphabet)
for ch2 in s :
idx = (alphabet.index(ch2) + index) % len(alphabet)
print(alphabet.index(ch2), idx)
answer += alphabet[idx]
return answer
s,skip,index = 'aukks','wbqd',5
res = solution(s,skip,index)
print(res)
자주 쓰일 것 같으므로 익혀두자!