내일배움캠프 AI/페어프로그래밍
[페어프로그래밍] 230503 둘만의 암호
생각하는 코댕이
2023. 5. 3. 15:19
728x90
페어프로그래밍 결과 코드
# 페어프로그래밍으로 제작한 코드
# 문자열skip에 포함되어 있는 알파벳은 순서에서 제외
# 문자열s의 각 알파벳 판별 for문
# index만큼의 뒷순서 알파벳으로 반환
# z를 넘어가면 다시 a부터 시작
# 결과값 리턴
def solution(s, skip, index):
alphabet = 'abcdefghijklmnopqrstuvwxyz'
# alphabet_list = list(ascii_lowercase)
answer = ''
for j in skip:
if j in alphabet:
alphabet = alphabet.replace(j,'')
for i in s:
# alphabet[alphabet.index(i)] = i
n = alphabet[(alphabet.index(i) + index)%len(alphabet)]
answer += n
return answer
흠터레스팅 코드
# ascii 코드 사용 , set활용 for 연산
from string import ascii_lowercase
def solution(s, skip, index):
result = ''
a_to_z = set(ascii_lowercase)
a_to_z -= set(skip)
a_to_z = sorted(a_to_z)
l = len(a_to_z)
dic_alpha = {alpha:idx for idx, alpha in enumerate(a_to_z)}
for i in s:
result += a_to_z[(dic_alpha[i] + index) % l]
return result
시사점 or 새로이 알게된 점
ascii를 활용하여 a to z를 사용할 수 있음을 알게 되었다.
set type은 list와 str과는 달리 ± 연산이 가능함을 염두하도록 하자.
728x90