728x90
📌 수박수박수
길이가 n인 '수박수박수...'와 같은 패턴을 갖고있는 문자열을 리턴하는 함수를 만드는 문제다.
정답판정을 받고 다른 사람의 풀이
를 보니까 리스트 슬라이싱을 이용해 쉽게 풀었던 코드를 봤다. 나중에 써먹자.
💡 나의 풀이
수박수박수..
와 같은 패턴을 띄는 문자열을 빈 리스트에 선언했다.
n의 길이가 10,000
이하의 자연수이므로 범위를 fruit = [0] * 10001
로 설정했다.
다음으로 홀수번째는 수
, 짝수번째는 박
이라는 패턴을 찾아냈다.
그래서 fruit
리스트에 패턴을 넣어줬다.
그리고 n번만큼 리스트를 출력해 문자열(str)로 바꿔주었다.
def solution(n):
fruit = [0] * 10001
fruit = ['수' if i % 2 == 0 else '박' for i in range(len(fruit))]
return ''.join([fruit[i] for i in range(n)])
💡 다른 코드
리스트 슬라이싱을 이용해 코드를 작성했지만, 개인적으로 범위를 다시 설정했으면 더 좋은 코드가 됐을것 같다.
n=3
이면 s = 수박수박수박
이 될텐데 출력은 수박수
까지만 필요하다.
따라서, 범위 설정을 (n//2+1)
로 해주면 s = 수박수박
이 되므로 기존코드보다 메모리면에서 더 효율적이다.
# 다른사람의 풀이
def solution(n):
s = '수박' * n
return s[:n]
# 다른사람의 풀이 수정코드
def solution(n):
s = '수박' * (n//2+1)
return s[:n]
반응형
'Algorithm > 프로그래머스(Programmers)' 카테고리의 다른 글
[ 파이썬(python) ] 프로그래머스 level1 - 자릿수 더하기 (0) | 2021.03.31 |
---|---|
[ 파이썬(python) ] 프로그래머스 level1 - 정수 내림차순으로 배치하기 (0) | 2021.03.31 |
[ 파이썬(python) ] 프로그래머스 level1 - 체육복 (0) | 2021.03.31 |
[ 파이썬(python) ] 프로그래머스 level1 - 약수의 합 (0) | 2021.03.31 |
[ 파이썬(python) ] 프로그래머스 level1 - 2016년 (0) | 2021.03.31 |
댓글