군 전략가 머쓱이는 전쟁 중 적군이 다음과 같은 암호 체계를 사용한다는 것을 알아냈습니다.
- 암호화된 문자열 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])
반응형
'Python' 카테고리의 다른 글
[Python/level 0] 문자열 정수의 합 - 181849, sum, 리스트 컴프리헨션 (0) | 2024.08.03 |
---|---|
[Python/level 0] n의 배수 고르기 - 120905, 리스트 컴프리헨션 (1) | 2024.08.03 |
[Python/level 0] 양꼬치 - 120830, O(n) vs O(1) 풀이법 비교 (0) | 2024.08.03 |
[Python/level 0] ad 제거하기 - 181870, not in, pop과 remove를 사용하지 않은 이유 (1) | 2024.08.03 |
[Python] 정규식 - 함수, 메타문자, 특수 시퀀스 (0) | 2024.08.03 |