DecordRay

[프로그래머스] Level1 : 둘만의 암호[Python] 본문

알고리즘/프로그래머스

[프로그래머스] Level1 : 둘만의 암호[Python]

DecordRay 2023. 2. 6. 22:17
728x90
반응형

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/155652

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이 :

1. 변수 

  • idx : idx = index가 될때까지 내부반복문(whlie)을 실행하도록 하는 변수(=종료조건)
  • temp : s[i]에 해당하는 문자를 아스키코드로 치환한 값을 저장할 변수

2. temp + 1index만큼 반복. temp를 문자로 치환했을 때 skip에 있는 문자일 경우 idx - 1 수행 후 반복문 다시 수행

3. 만약 temp = 123이라면 temp = 97로 변경.(z의 아스키코드 = 122, a의 아스키코드 = 97 이므로)

3. 외부반복문(for문)이 수행될때마다 s[i]번 문자가 index만큼 뒤에 있는 문자로 치환되므로 이를 answer에 이어붙여줌.

 

 

코드 :

def solution(s, skip, index):
    answer = ''
    for i in range(len(s)):
        idx = 0
        temp = ord(s[i])
        while True:
            if idx == index:
                break
            temp += 1
            if temp == 123:
                temp = 97
            idx += 1
            if chr(temp) in skip:
                idx -= 1
                continue
        answer += chr(temp)
    return answer

 

728x90
반응형
Comments