본문 바로가기

Python

[Python/level 0] 암호 해독 - 120892, Slicing

문제 설명

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

  • 암호화된 문자열 cipher를 주고받습니다.
  • 그 문자열에서 code의 배수 번째 글자만 진짜 암호입니다.

문자열 cipher와 정수 code가 매개변수로 주어질 때 해독된 암호 문자열을 return하도록 solution 함수를 완성해주세요.

 

code - 1차

  • 시간 복잡도: O(n)
    • answer += cipher[i] 연산에서 새로운 만자열을 매번 생성하기 때문에 시간이 더 많이 걸릴 수 있음
  • 설명
    • cipher만큼 for문을 돌려서 code 배수번째 글자만 뽑아서 answer에 더하기
    • for문 range(code-1)로 시작점을 잡은 이유
      • 최초 시작 index는 0이고, 우리가 더해줘야 하는 값은 code 배수번째 글자이기 때문
def solution(cipher, code):
    answer = ''
    for i in range(code-1, len(cipher), code):
        answer += cipher[i]
    return (answer)

 

code - 2차

  • 시간 복잡도: O(n)
  • 설명
    • slicing 활용: [시작점 code-1 : 이후 전체 : 증가폭 code] 
def solution(cipher, code):
    return(cipher[code-1::code])
반응형