Dev_Jaekwan
article thumbnail

문제설명

출처 : 프로그래머스 코딩테스트 연습문제 - 둘만의 암호

해결코드

프로그래머스 1단계에 해당하는 문제이다. 솔직히 문제 자체는 어렵지 않은데 테스트 케이스가 별로 없어서 약간 중의적인 해석이 가능했던 문제라 아마도 정답률이 적은거 같다. 

def solution(s, skip, index):
    abc = [chr(i) for i in range(97, 123) if not chr(i) in skip] * 3
    answer = ''
    for i in s:
        answer += abc[abc.index(i) + index]
        
    return answer

코드해설

코드 해설은 입출력 예제 1번을 통해 진행하도록 하겠습니다.

 

풀이설명1

# 풀이설명1 : ASCII 코드로 알파벳 배열 만들기. 단 skip에 들어가는 글자는 제외
abc = [chr(i) for i in range(97, 123) if not chr(i) in skip] * 3

먼저 영어 'a', 'b', 'c' 순으로  알파벳을 생성하되, skip에 포함되어 있는 글자는 제외합니다..

알파벳 배열을 생성해야 됬기 때문에 아스키 코드 97번이 'a' 라는 것을 이용해 배열을 생성했습니다. 정처기 딴게 조금은 도움이 된거 같다

 

풀이설명2

s에 들어오는 값을 for문을 통해 순회하면서 생성된 abc 배열에서 찾아서 새로운 알파벳으로 변환 시킵니다.

answer = ''
for i in s:
    answer += abc[abc.index(i) + index]        
return answer
profile

Dev_Jaekwan

@Dev_Jaekwan

검색 태그