문제
문자열 my_str 과 n 이 매개변수로 주어질 때, my_str 을 길이 n 씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ my_str의 길이 ≤ 100
- 1 ≤ n ≤ my_str의 길이
- 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 함수를 자주 쓰는 편인데, 이 부부은 내가 놓치고 있던 부분이라 다시 상기가 되어 도움이 되었다.
'코딩테스트' 카테고리의 다른 글
[백준] 실버1/파이썬 - 1446 지름길 (0) | 2024.08.19 |
---|---|
[백준] 실버1/파이썬 - 11726 트리의 부모 찾기 (0) | 2024.08.12 |
[Letecode/SQL] Number of Unique Subjects Taught by Each Teacher (no. 2356) (0) | 2024.04.15 |
[Programmers] 코딩테스트 입문 - 양꼬치 (0) | 2023.11.15 |
[Programmers] 코딩테스트 입문 - 문자열 계산하기 (1) | 2023.11.14 |