NIRVANA

[level 1] 수박수박수박수박수박수? 본문

Coding test(Python3)/Programmers

[level 1] 수박수박수박수박수박수?

녜잉 2023. 7. 13. 14:13

문제

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

 

 

문제 풀이 접근법1

1) 반복문으로 n만큼 반복하며 리스트에 '수' or '박'을 추가한다.

2) 이때, (for문을 기준으로) i가 짝수이면 리스트에 '수'를, i가 홀수이면 리스트에 '박'을 추가한다.

3) 리스트를 str로 변환한 뒤 반환한다. 

def solution(n):
    answer = []
    
    for i in range(n):
        if i % 2 == 0:
            answer.append('수')
        else:
            answer.append('박')
        
    arr = ''.join(answer) 
    return arr

 


 

다른 분들 풀이 

def water_melon(n):
    # 함수를 완성하세요.
    str = "수박"*n
    return str[:n]


# 실행을 위한 테스트코드입니다.
print("n이 3인 경우: " + water_melon(3));
print("n이 4인 경우: " + water_melon(4));

진짜 보자마자 감탄만 나왔다. 

이걸 이렇게 푼다고?? 진짜 천재아님??

 

def water_melon(n):
    # 함수를 완성하세요.

    return "수박" * (n//2) + "수" * (n%2)


# 실행을 위한 테스트코드입니다.
print("n이 3인 경우: " + water_melon(3));
print("n이 4인 경우: " + water_melon(4));

이것도 좋은 풀이인 것 같다. 

n이 홀수이면 마지막은 무조건 '수'가 오니까

짝수면 '수' * 0이어서 마지막이 박으로 끝나고 홀수면 '수'*1이니까 수로 끝나고!

굳이 for문 쓰지 않아도 되고, if문 사용하지도 않아도 되고

좋은 코드인듯...!!