수박수박수박수박수박수?
문제 설명
길이가 n이고, ''수박수박수박수....' '와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 ''수박수박''을 리턴하고 3이라면 ''수박수''를 리턴하면 됩니다.
제한 조건
n
은 길이 10,000이하인 자연수입니다.
입출력 예
n return 3 '수박수' 4 '수박수박'
제출코드
def solution(n): answer = '' for i in range(1,n+1): if i % 2 != 0: answer += '수' else: answer += '박' return answer
코드설명
n
은 길이를 의미하는 변수 즉,integer
타입이므로 짝수 또는 홀수로 분리된다.이를 이용해
mod 2
연산의 결과가 0인지 아닌지에 따라박
또는수
를 기존string
변수answer
에 덧붙혀 반환하도록 하였다.
다른 사람의 풀이
def solution(n): s = '수박' * n return s[:n]
위 풀이는 좋아요를 제일 많이 받은 풀이이다.
전달받은 n만큼 '수박'이란 단어를 반복하여
s
변수에 저장한 뒤,
s[:n]
을 리턴하였다.간결한 풀이방법 이지만 s 변수를 assign하는데 다소 메모리 낭비가 일어날 수 있다고 생각한다.
예를들어,
n
이 8인 경우 실질적으로 return을 해야할 변수는 8글자이지만 이를 할당할 때는 '수박' * 8 총 16개의 문자를 필요로 하기 때문이다.
다른 사람의 풀이2
def solution(s): return '수박' * (n//2) + '수' * (n%2)
나는 이 풀이가 더욱 효율적이라고 생각한다.
n을 2로 나눈 나머지값을 구해
수박
문자열을 반복하고mod
연산을 통해 홀수인 경우를 고려하여수
문자를 추가한다.깔끔하고 효율적인 풀이방법이다.
'Algorithm & SQL > Programmers' 카테고리의 다른 글
[Programmers] [Python] 자연수를 뒤집어 배열로 만들기 (0) | 2019.11.06 |
---|---|
[Programmers] [Python] 시저 암호 (0) | 2019.11.01 |
[Programmers] [Python] 서울에서 김서방 찾기 (0) | 2019.10.30 |
[Programmers] [Python] 문자열 다루기 기본 (0) | 2019.10.30 |
[Programmers] [Python] 문자열 내 마음대로 정렬하기 (0) | 2019.10.29 |