1. quiz

  • 군 전략가 머쓱이는 전쟁 중 적군이 다음과 같은 암호 체계를 사용한다는 것을 알아냈습니다.

  • 암호화된 문자열 cipher를 주고받습니다.
    그 문자열에서 code의 배수 번째 글자만 진짜 암호입니다.
    문자열 cipher와 정수 code가 매개변수로 주어질 때 해독된 암호 문자열을 return하도록 solution 함수를 완성해주세요.

2. answer

def solution(cipher, code):
    return ''.join([cipher[i-1] for i in range(1,len(cipher)+1) if i % code ==0])

3. 다른 사람의 풀이

def solution(cipher, code):
    answer = cipher[code-1::code]
    return answer
  • 위의 코드처럼 슬라이싱을 하게 되면 훨씬 빠르게 된다. 'join'을 쓰게 되면 복잡도가 상승하게 된다(log**n). 간단히 생각하면, cipher의 전체 글자 수 중, code-1부터 code 간격만큼 slicing을 하게 되면 된다. 이럴 경우 계산 복잡도를 훨씬 줄일 수 있다.
profile
To be a changer who can overturn world

0개의 댓글