개발자 블로그

프로그래머스 - '수박수박수박수?' 본문

알고리즘/프로그래머스

프로그래머스 - '수박수박수박수?'

hayongwoon 2022. 4. 27. 12:16

문제 설명

더보기

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.

제한 조건

  • n은 길이 10,000이하인 자연수입니다.

입출력 예

nreturn
3 "수박수"
4 "수박수박"

 

나의 풀이

def solution(n):
    answer = ''
    for i in range(1, n+1):
        if i % 2:
            answer += '수'
        else:
            answer += '박'

    return answer

 

개선 풀이

def solution(n):
    answer = '수박'*n
    return answer[:n]

 

두 풀이를 보면 처음 내가 짰던 코드가 얼마나 한심한지 모르겠다. 단순하게 바로 코드를 작성했을 때의 문제라고 본다.

물론 시간이 없어서 급하게 풀 수도 있지만...그래도 이건 좀 한심하다. 

 

여기서 얻은 교훈은 조급하지말고 코드는 손이 아닌 머리로 하는 것! 제발 코드로 옮기기 전에 생각을 하자!!

 

두 풀이의 시간 복잡도는 많이 차이가 난다. 굳이 for문으로 하나씩 더해주지 않아도 문자열 슬라이싱만으로 접근이 가능하다. 처음보고 슬라이싱하면 되겠지 생각했는데, 바로 코드로 옮기는 것은 아직 for문이 편하다.. 이런 습관을 알고 앞으로 고쳐나가자!