얼음녹차의 블로그
article thumbnail

문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/120913#

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

처음 작성한 코드

  • 리턴값을 list로 작성하기 위해 list 컴프리헨션으로 작성한다.
  • 문자열을 n간격으로 자르기 위해 변수 i에 대해 i*n부터 i*n+n-1까지 자르게 설정한다.
  • 변수 i를 슬라이싱의 횟수로 범위를 정한다.
def solution(my_str, n):
    answer = [my_str[i*n:i*n+n] for i in range((len(my_str)+n-1)//n)]
    return answer

# 입출력 예시
print(solution("abc1Addfggg4556b", 6))
print(solution("abcdef123", 3))

막상 작성해보니 슬라이싱에 필요한 변수들의 사용이 깔끔하지 않다고 느꼈다.

 

다른 코드

[코드1]

  • 변수 i의 값을 n간격으로 증가시키게 하여 변수들의 사용을 보기 쉽게 변경하였다.
def solution(my_str, n):
    answer = [my_str[i: i + n] for i in range(0, len(my_str), n)]
    return answer

이런 방법 말고 map과 join 함수를 사용하는 방법도 있지만, 가독성이나 효율측면에서 좋아 보이진 않아 보인다.

profile

얼음녹차의 블로그

@PERIR

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!