본문 바로가기
컴퓨터/알고리즘

[프로그래머스] Lv1 수박수박수?_python 문제 풀이

by 버니케이 2022. 6. 28.
반응형

출처

https://programmers.co.kr/learn/courses/30/lessons/12922

문제

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

입출력 예시

 

문제풀이1

def solution(n):
    수 = '수'
    박 = '박'
    answer = [0]*(n)
    for i in range(n):
        if i % 2 == 0:
            answer[i]= 수
        else:
            answer[i] = 박

    return ''.join(answer)
  • 배열과 for 문을 연습할 겸 풀어봤다.
  • list assignment index out of range 오류가 발생해서 answer 배열에 0 을 미리 채워놨다.

문제풀이2

def solution3(n):
    return ('수박' * n )[:n]
  • 주어진 수만큼 수박을 출력한 후 나중에 자르는 로직
  • 공간복잡도가 커지기 때문에 비효율적이라고 생각함

문제풀이3

def solution4(n):
    return "수박"*(n//2) + "수"*(n%2)
  • 시간복잡도, 공간복잡도가 작음
  • 제일 깔끔한 풀이라고 생각함
반응형

댓글