2019년 1월 13일 일요일

#7 알고리즘 연습- 같은 문자 반복 / PYTHON


반복 글자 출력


문제 설명
길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다.
제한 조건
  • n은 길이 10,000이하인 자연수입니다.
입출력 예
nreturn
3수박수
4수박수박




문제 풀이 IDEA

수박의 갯수는 2로 나눈 몫이 우선적으로 있어야 하고 추가적으로 수박의 글자에서
2의 나머지인 (0, 1)인덱스를 slice해서 가져오자




나의 코드 ⭐

1

2
3

def solution(n):
    return((n//2)*"수박"+"수박"[:n%2] )   python은 string *int해주면 int만큼 반복
                                          6이 들어올경우 3번 수박 반복 하고 5일경우 2번 반복 
                                          그리고 수박에서 mod가 0일경우 가져오는 string없고
                                          mod가 1일경우 "수"를 가져와서 붙여준다


다른 코드⭐

1
2
3
4
5
6
7
8
9
10
11
12
# 문제가 개편 되었습니다. 이로 인해 함수 구성이 변경되어, 과거의 코드는 동작하지 않을 수 있습니다.
# 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다.
def water_melon(n):
    s = "수박" * n                           수박을 n만큼 s에 넣어주고
    return s[:n]                             그 string에서 n까지만 뽑아왔다
                                             하지만 n이 커지면 메모리 낭비가 심할것 같다


눈여겨 보아야 할 점

python에서는 String*int를 지원하는데 이는 String을 int번 만큼 반복해준다


출처: 프로그래머스(https://programmers.co.kr/)

가장 많이 본 글