오랑우탄의 반란

프로그래머스 | 둘만의 암호 (파이썬) 알파벳 순환 본문

PYTHON/프로그래머스

프로그래머스 | 둘만의 암호 (파이썬) 알파벳 순환

5&2 2024. 8. 19. 11:02
반응형

 


오늘도 오랑이는 문제를 풉니다.

 

 

둘만의 암호


풀이 과정

  • alphabet 문자열 생성 후 skip에 포함된 문자 제거
  • s 의 문자에 대해 인덱스 + index 에 해당되는 문자 alphabet에서 꺼내서 출력 

 

우선 s 인덱스 카운트가 원활하게 되도록 alphabet 문자열 생성 후 skip 에 포함된 문자를 제거해주는 작업을 해줍니다.

def solution(s, skip, index):
    answer = ''
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    alphabet = ''.join(sorted(set(alphabet) - set(skip)))

 

skip 이 제거된 알파벳을 출력해보면 아래와 같이 나옵니다. 

 

이제 s 인덱스+index 에 맞는 알파벳을 출력해주는 조건문을 단계별로 봅시다. 

for i in range(len(s)):
    answer += alphabet[(alphabet.find(s[i]) + index)%(26-len(skip))]

 

for i in range(len(s)):
    alphabet.find(s[i]) # alphabet에서 s 문자별 인덱스값 찾기
    ---
    alphabet.find(s[i])+index # index 더해주기
    ---
    (alphabet.find(s[i])+index)%(26-len(skip)) 
    # z 이후에 다시 a로 순환되게 alphabet길이로 나눈 나머지값으로 치환해주기

 

 

최종 코드

def solution(s, skip, index):
    answer = ''
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    alphabet = ''.join(sorted(set(alphabet) - set(skip)))
    
    for i in range(len(s)):
        answer += alphabet[(alphabet.find(s[i]) + index)%(26-len(skip))]
        
    return answer

 

 

 

오랑우탄이 영어를 하고 오랑이가 코드마스터가 되는 그날까지~

 

 

 

 

프로그래머스

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

programmers.co.kr

 

반응형