수박수박수박수박수박수?
문제 링크
나의 풀이
def solution(n):
answer = ''
if n % 2 == 0:
answer = "수박" * (n // 2)
elif n == 1:
answer = "수"
else:
answer = "수" + "박수" * (n // 2)
return answer
- n이 짝수일 경우, n이 1일 경우, n이 홀수일 경우(n=1인 경우제외)로 나누어 풀이하였다. 가장 쉽고 직관적인 풀이 방법이라고 생각하며 많은 사람들이 이와 유사하게 풀이한 것 같다.
다른 사람의 풀이
def water_melon(n):
s = "수박" * n
return s[:n]
- "수박"을 2배 정도의 길이로 만들어 놓고 필요한 만큼 slicing하는 풀이법이다. 불필요한 메모리와 CPU연산을 사용하게 되는 코드 구성이지만 이러한 방식의 사고도 할 수 있는 능력을 키워야 겠다.
def water_melon(n):
return "수박"*(n//2) + "수"*(n%2)
- n을 2로 나누어서 나온 몫에 "수박"을 곱하고 나머지에 "수"를 곱하여 더하였다. 개인적으로 이 풀이법이 가장 마음에들고 간결하다고 생각한다.