프로그래머스 LV0. 암호해독

꿈틀이·2023년 1월 4일
0

알고리즘 - 기초

목록 보기
1/21
def solution(cipher, code):
    answer = ''
    for i in range(0,len(cipher),1):
        if((i+1) % code == 0):
            answer += cipher[i]
    #k*n-1

    return answer 

문자열의 처음부터 끝까지 code의 배수만큼만 가지고 와야한다.

하지만 인덱스는 0부터 시작해서 실제 우리가 생각하는 인덱스와 한칸씩 차이가 나므로 if문 속은 I+1로 두었다.

1. 슬라이싱 :

a[0:4] → 인덱스 0부터 3까지 잘라서 새로운 리스트를 반환
a[1:7:2] → 인덱스 1부터 6까지 2칸 간격으로 가져옴

이걸 사용하면 포문을 사용하지 않고 쉽게 수식으로 접근이 가능할 것 같았다

하지만 세상에 알고보니 a[A::B]를 하면 그냥 A부터 끝까지 B를 간격으로 가능한거였다
end의 기본 값이 리스트의 끝이었던 것이다

따라서 위의 코드는

answer = cipher[code -1 :: code]
return answer 

로 작성이 가능했던 것

profile
안녕하세용🤓

0개의 댓글