풀이
- ord()와 chr()를 활용해서 각 문자에 접근하여
- index만큼 카운팅하되 skip에 포함되는 문자의 경우엔
- 카운팅하지 않도록 하기
- 여기서 set()으로 한 이유는 hash로 접근하여
- 배열처럼 하나씩 접근하지 않기에 더 빠르다고 하여 이렇게 해결
def solution(s, skip, index):
result = []
s_skip = set(skip)
for i in s:
check = 0
i_ord = ord(i)
while check != index:
n_i_ord = i_ord+1 if 122 >= i_ord+1 else 96+(i_ord+1)%122
if chr(n_i_ord) not in s_skip: check += 1
i_ord = n_i_ord
result.append(chr(i_ord))
return "".join(result)
'알고리즘' 카테고리의 다른 글
[프로그래머스, 파이썬] 연속된 수의 합 (0) | 2024.02.23 |
---|---|
[프로그래머스, 파이썬] 분수의 덧셈 (0) | 2024.02.22 |
[프로그래머스, 파이썬] 주사위 게임 3 (0) | 2024.02.21 |
[프로그래머스, 파이썬] 안전지대 (0) | 2024.02.21 |
[프로그래머스, 파이썬] 햄버거 만들기 (0) | 2024.02.20 |