문제 설명
길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.
제한 조건
- n은 길이 10,000이하인 자연수입니다.
입출력 예
n | return |
3 | "수박수" |
4 | "수박수박" |
내 풀이
"수박"은 두 글자
n을 2로 나눈 몫 만큼 "수박" 에 곱하기
홀수일 경우 나머지 만큼 "수" 이어붙이기 (항상 나머지는 0 또는 1)
def solution(n):
s = "수박" * (n//2) + "수" * (n%2)
return s
다른 사람 풀이1
"수박"을 n 만큼 문자열로 만듦
3이면 "수박수박수박"
길이 n ex) n=3 으로 인덱싱하여 출력하면 "수박수"
문자열이 길어질 수록 시간이 길어질 것 같고 비효율적인 것 같음
그래도 나는 생각하지 못한 생각
def water_melon(n):
s = "수박" * n
return s[:n]
다른 사람 풀이2
1번과 비슷한 느낌
1번에서 처럼 문자열 s를 생성해 인덱싱한 것이 아니라 바로 인덱싱하여 리턴
def water_melon(n):
return ("수박"*n)[0:n]
728x90
'코딩테스트' 카테고리의 다른 글
[프로그래머스/파이썬] 내적 (0) | 2022.09.23 |
---|---|
[프로그래머스/파이썬] 없는 숫자 더하기 (0) | 2022.09.23 |
[프로그래머스/파이썬] 가운데 글자 가져오기 (0) | 2022.09.22 |
[프로그래머스/파이썬] 음양 더하기 (0) | 2022.09.22 |
[프로그래머스/파이썬] 제일 작은 수 제거하기 (0) | 2022.09.21 |