티스토리 뷰

문제 설명

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


제한사항
  • 1 ≤ my_str의 길이 ≤ 100
  • 1 ≤ n  my_str의 길이
  • my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.

 

입출력 예
my_str  :  n  :  result
"abc1Addfggg4556b" 6 ["abc1Ad", "dfggg4", "556b"]
"abcdef123" 3 ["abc", "def", "123"]

 

* 첫 번째 생각

def solution(my_str, n):
    import math
    answer = []
    for _ in range(math.ceil(len(my_str)/n)):
        answer.append(my_str[:n])
        my_str = my_str[n:] 
    return answer

- 문자열을 n으로 나누어서 몇 번 잘라야 하는지 계산 (반올림을 위해 math 모듈의 ceil 사용

 

cf. math 모듈이 꼭 필요한걸까

 

* 두 번째 생각

math 모듈없이 작성

def solution(my_str, n):
    answer = []
    for _ in range(0, len(my_str), n):
        answer.append(my_str[:n])
        my_str = my_str[n:] 
    return answer

 

range(start, stop, step)

 

for _ in range(len(my_str)//n) 

  >> 이 경우 몫만 취하게 되므로 16문자열을 6개씩 나누면 2쩜 얼마의 목이라 스탑값이 2  (0,1)

  >> 0-5, 6-11 다음의 12-15까지의 문자를 반영하지 않아 실패

 

for _ in range(math.ceil(len(my_str)/n))

  >>  나눈 값의 소수점 값을 올림 해버려서 12-15까지의 문자를 반영하게 했으나, math 함수와 ceil(올림)을 모르면 불가하므로 패스

 

for _ in range(0, len(my_str), n)

  >>  스텝값을 넣어서 16문자열이고 6개씩일 경우 0,6,12 세 번동안 for문은 돌고

         도는 동안 6개씩 취하고

         처리할 문자열을 앞 6개씩 제외하고 끝까지 재정의하도록 함

 

'Test > Python(20220101~)' 카테고리의 다른 글

프로그래머스.L0.문자열정렬  (0) 2022.10.10
프로그래머스.L0.7의개수  (0) 2022.10.09
문자열 처리 참고  (0) 2022.10.07
프로그래머스.L0.문자열밀기  (1) 2022.10.05
프로그래머스.L0.연속된 수의 합  (0) 2022.10.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함