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

kiki·2024년 1월 11일
0

프로그래머스

목록 보기
57/76

문제 링크

문제 설명

  • 두 문자열 s와 skip, 그리고 자연수 index가 매개변수로 주어질 때 위 규칙대로 s를 변환한 결과를 return
  • skip에 포함되는 알파벳은 s에 포함되지 않습니다.

1차 시도

def solution(s, skip, index):
    alphabet = list("abcdefghijklmnopqrstuvwxyz")
    for i in skip:
        alphabet.remove(i)
    ll = len(alphabet)
    result = ''
    
    for j in s:
        result+=alphabet[(alphabet.index(j)+index)%ll]
    return result

알파벳 리스트 만들고 skip 제거하고 인덱싱으로 값 구하기
근데 만약 알파벳 순서를 모른다? (?: 모르는 사람이 있음?? 나:..)
그러면 정렬을 사용하면 된다. sorted(list('qwertyuiopasdfghjklzxcvbnm'))
sort가 문자도 정렬해줄 수 있다는 것을 잊지 말자.

근데! 여기서 find를 하면 오래 걸릴 수 있으니 dictionary를 사용하는 것도 방법이다.

정리

  • string to list: list 함수를 씌우거나, split을 사용 (",".split(문자열))
  • 문자 리스트 정렬: sort, sorted 함수를 사용해서 문자로 이루어진 list를 정렬할 수 있다.
  • index%len(list)를 이용해 원형 수열과 같은 리스트 인덱싱이 가능하다.

0개의 댓글