Algorithm/프로그래머스

(파이썬) [알고리즘 문제 풀이] - 수박수박수박수박수박수? (프로그래머스)

Jesse 2021. 1. 26. 00:51

문제 설명

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요.

예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.

 

풀이

주어진 숫자 n의 길이만큼 문자열 "수박"을 연장 시키면 되는 문제 입니다.

우선, "수박"이라는 문자열을 변수로 지정해둡니다.

n 범위의 for 문을 사용하여 "수"와 "박"을 번갈아가면서 빈 문자열에 더 하도록 합였습니다.

문자열 "수박"에서 인덱스 0은 "수"이고 인덱스 1은 "박"입니다.

오직 인덱스 0과 1만 필요함으로 for 문의 인덱스 i에서 2로 나눈 나머지만 나오도록 하였습니다.

어떤 숫자든지 2로 나눈 나머지는 0이나 1만 가능하기 때문에 그렇습니다.

코드

def solution(n):
    answer = ''
    watermelon = "수박"
    for i in range(n):
        answer += watermelon[i%2]
    return answer

코드를 좀 더 간단하게 만들고 싶다면

문자열 "수박"을 n만큼 늘린 다음에 필요한 만큼 자르는 방법도 있겠지만

그럴 경우에는 리턴에 필요한 문자열보다 2배 긴 문자열을 만든 후에 n만큼 자르는 방법이라

비효율적이라 판단 했습니다.