데이터 꿈나무

[코딩 테스트] 프로그래머스_암호해독(문자열에서 배수 글자만 출력하기) 본문

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의 인덱스가 출력이 된다.

Comments