알고리즘 연습/구현, 문자열

[Lv.1 / 프로그래머스 / 파이썬] 둘만의 암호

김세진 2024. 7. 9. 21:17
반응형

 

 

 

 

 

 

프로그래머스

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

programmers.co.kr

 

 

 

풀이

 

제한사항이 매우 작으므로 특별한 알고리즘 없이 구현이 가능하다. 알고리즘은 다음과 같다.

 

  1. skip에 있는 문자열을 제외한 알파벳 목록을 구한다. 이를 skipped 라 칭한다.
  2. s를 순회하며 skipped에서 현재 알파벳의 인덱스를 찾아 index 만큼 더해준다. 이 때, skipped 의 총 길이를 초과한다면 그 나머지를 구한다.
  3. result에 2에서 구한 인덱스의 알파벳을 더한다.

 

def solution(s, skip, index):
    skipped = [chr(i) for i in range(97, 123) if chr(i) not in skip]
    res = ""
    for i in s:
        res += skipped[(skipped.index(i) + index) % len(skipped)]
    return res

 

 

 

 

 

 

 

 

 

반응형