유형 : 구현
풀이 시간 : 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 값을 수정
'프로그래머스 > Lv. 1' 카테고리의 다른 글
47. 완주하지 못한 선수 (0) | 2024.07.16 |
---|---|
46. 대충 만든 자판 (+enumerate) (0) | 2024.07.16 |
44. 로또의 최고 순위와 최저 순위 (0) | 2024.07.16 |
43. [1차] 다트 게임 (0) | 2024.07.16 |
42. 기사단원의 무기 ★★ (약수의 개수) (0) | 2024.07.16 |