얼음녹차의 블로그
article thumbnail

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

 

프로그래머스

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

programmers.co.kr

 

비슷한 문제

 

프로그래머스

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

programmers.co.kr

 

처음 작성한 코드

문자열의 슬라이싱을 먼저 한 뒤, c번째 요소를 더해나가는 방법이다.

  • m이 my_string 길이의 약수이므로 루프문의 범위를 0부터 my_string의 길이까지, m간격으로 지정해 주었다.
  • my_string의 범위를 i에서 i+m까지로 지정하면 m개의 문자로 나뉘게 된다.
    • 그중 c번째 문자를 answer에 이어 붙이면 된다.
def solution(my_string, m, c):
    answer = ''
    for i in range(0, len(my_string), m):
        answer += my_string[i:i+m][c-1]
    return answer

# 입출력 예시
print(solution("ihrhbakrfpndopljhygc", 4, 2))
print(solution("programmers", 1, 1))

기본적으로는 이러한 알고리즘으로 작성하겠으나, 아래 다른 코드와 같이 이러한 문제에 대한 쉬운 풀이가 존재한다.

 

다른 코드

[코드1]

슬라이싱을 이용해 목표 인덱스를 설정하지 않으면 c 번째 요소부터 m간격으로 불러올 수 있다.

def solution(s, m, c):
    return s[c-1::m]

 

profile

얼음녹차의 블로그

@PERIR

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