Activity/Algorithm
[코딩 테스트] 프로그래머스_암호해독(문자열에서 배수 글자만 출력하기)
ye_ju
2023. 2. 21. 20:01
📌 문제


📌 코드
def solution(cipher, code):
answer = ''
for i in range(code-1, len(cipher), code):
answer += cipher[i]
return answer
for문을 이용해서 code-1부터 cipher의 개수까지 code수만큼 띄어서 반복문이 진행되도록 했다. 차례로 i에 들어가게 된다.
여기에서 code에 -1을 해준 이유는, 인덱스가 0부터 시작되기 때문이다.
따라서 code가 4일 경우, i에는 차례대로 3번 인덱스(4번째), 7번 인덱스(8번째), 11번 인덱스(12번째), ....이렇게 진행되는 것이다.
결과적으로 cipher의 4(code)의 배수 인덱스가 빈 문자열인 answer에 들어가게 되고, 그에 해당되는 문자열이 answer에 추가가 되는 것이다.
📌 다른 풀이
def solution(cipher, code):
return cipher[code-1::code]
다른 풀이를 살펴보겠다. 내가 작성한 코드와 달리 상당히 짧은 것을 볼 수 있다.
슬라이싱을 이용하여 cipher의 3번 인덱스부터 끝까지 code의 수만큼 건너뛰어서 출력이 되는 것이다. 이에 해당하는 cipher의 인덱스가 출력이 된다.