프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
def solution(my_str, n):
answer = [my_str[i:i+n] for i in range(0, len(my_str), n)]
return answer
my_str = "abcdef123", n=3 이면 my_str을 n 개씩 잘라 배열로 나타내는 문제이다.
리스트를 자르기 위해서는 슬라이싱을 사용한다.
n 개씩 자르기로 했으므로 [ i : i+n ]과 같이 슬라이싱을 할 수 있다.
i의 범위는 리스트의 첫 번째 요소가 위치하는 0번 인덱스부터 마지막 인덱스까지이며, n 개씩 잘라야 하므로 n씩 증가시켜 주면 된다. 그래서 for문의 range는 ( 0, len(my_str), n )으로 나타낸다.
i는 len(my_str)까지이므로 리스트의 범위를 넘어가지 않는다.
반면, i+n은 마지막 len(my_str)에서 n을 더해준 값이므로 리스트의 범위를 넘어간다.
슬라이싱에서 끝 인덱스는 범위를 벗어난 인덱스를 지정해 줄 수 있기 때문에 에러가 발생하지 않는다.
슬라이싱에 대한 더 자세한 예와 설명은 아래 링크에서 볼 수 있다.
파이썬 코딩 도장: 11.4 슬라이스 사용하기
시퀀스 자료형은 슬라이스라는 기능을 자주 사용합니다. 슬라이스(slice)는 무엇인가의 일부를 잘라낸다는 뜻인데, 시퀀스 슬라이스도 말 그대로 시퀀스 객체의 일부를 잘라냅니다. 시퀀스객체[
dojang.io
반응형