구현문제
알파벳 배열 (a to z)에서 skip 배열의 원소를 제외한 후 (s 배열의 원소의 인덱스 + index)의 인덱스에 있는 알파벳 저장 후 반환 (배열의 사이즈를 넘어갈 수 있어서 % 연산 필요)
알파벳 배열을 만들어주는 함수를 사용해서 쉽게 풀었다!
from string import ascii_lowercase
alpha = list(ascii_lowercase)
# alpha = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
그런데..........
python에 set이라는 집합 자료형이 있었다.......
Set
- 중복 허용 x
- 순서 x
- 두 set의 교집합, 합집합, 차집합을 쉽게 구할 수 있음
- 교집합: a & b
- 합집합: a | b
- 차집합: a - b
충격적인....................................
그래서 다시 풀었다!
그리고 for 문으로 리스트 한 줄에 만드는 연습을 좀 열심히 해야겠다!
넘나 어려워잉
from string import ascii_lowercase
def solution(s, skip, index):
alpha = list(ascii_lowercase)
for i in skip:
if i in alpha:
alpha.remove(i)
answer = ''
for i in list(s):
answer += alpha[(alpha.index(i) + index) % len(alpha)]
return answer
from string import ascii_lowercase
def solution(s, skip, index):
alpha = sorted(set(ascii_lowercase) - set(skip))
return ''.join([alpha[(alpha.index(i) + index) % len(alpha)] for i in s])