728x90
문제
정답
def solution(s, skip, index):
answer = ''
sNum = [ord(s[i]) for i in range(0, len(s))]
skipNum = [ord(skip[i]) for i in range(0, len(skip))]
num = []
for i in range(0, len(sNum)):
num = []
for j in range(1, index+1):
if sNum[i]+j >= 123:
num.append(sNum[i]+j - 26)
else:
num.append(sNum[i]+j)
n = 0
k = index
while n < k:
if num[n] in skipNum:
num.append(num[-1]+1)
k+=1
n+=1
if num[-1] >= 123:
num[-1] -= 26
answer += chr(num[-1])
return answer
문자로 비교하는것보다 아스키코드를 이요하여 숫자로 비교하는것이 좋을것 같아 모두 숫자로 바꾸어주었습니다.
그리고 1씩 더하면서 z이면 a로 바뀔수 있도록 if문을 작성해 주었고, 만약 skip에 숫자가 있다면 index 값이 저장되어 있는 k를 증가시켜주어 다음 문자에 접근할수 있도록 풀어주었습니다.
728x90
'프로그래머스 코딩테스트 > Python' 카테고리의 다른 글
[프로그래머스] 성격 유형 검사하기 Python (0) | 2024.07.09 |
---|---|
[프로그래머스] 햄버거 만들기 Python (0) | 2024.07.09 |
[프로그래머스] 대충 만든 자판 Python (0) | 2024.07.05 |
[프로그래머스] 문자열 나누기 Python (0) | 2024.07.05 |
[프로그래머스] 숫자 짝꿍 Python (0) | 2024.07.05 |