코딩테스트

[Programmers] 코딩테스트 입문 - 잘라서 배열로 저장하기

브라우니란 2023. 11. 16. 11:52

 

문제

문자열 my_str 과 n 이 매개변수로 주어질 때, my_str 을 길이 n 씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.

 

 

제한사항

  1. 1 ≤ my_str의 길이 ≤ 100
  2. 1 ≤ n ≤ my_str의 길이
  3. my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.

 


 

작성 답안

import math

def solution(my_str, n):

    rpt = math.ceil(len(my_str)/n)
    answer = [my_str[i*n:(i+1)*n] for i in range(rpt)]
        
    return answer

 

 

 

 

작성 답안에 대한 풀이

나는 이 문제를 풀 때 가장 큰 핵심은 문자열 슬라이싱과 리스트 컴프리헨션을 사용하는 것이라 생각하였다. 처음에는 for문으로 작성하여 append 메소드를 통해 구현하였는데, 그때는 정답률이 75 % 밖에 되지 않았다. 그래서 문자열 슬라이싱 하는 로직을 다시 수정한 후 리스트 컴프리헨션을 통해 풀이하였다.

 

 

다른 사람들의 풀이도 확인해보았는데, 이러한 방식 외에도 range() 에서 구간을 설정할 수 있는 옵션을 통해 문자열 슬라이싱을 하였다. 평소에 range 함수를 자주 쓰는 편인데, 이 부부은 내가 놓치고 있던 부분이라 다시 상기가 되어 도움이 되었다.