문제
water_melon함수는 정수 n을 매개변수로 입력받습니다.
길이가 n이고, 수박수박수...와 같은 패턴을 유지하는 문자열을 리턴하도록 함수를 완성하세요.
예를들어 n이 4이면 '수박수박'을 리턴하고 3이라면 '수박수'를 리턴하면 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
def water_melon(n):
a = ""
for i in range (n):
if i%2 == 0:
a = a + "수"
else:
a = a + "박"
return a
# 실행을 위한 테스트코드입니다.
print("n이 3인 경우: " + water_melon(3));
print("n이 4인 경우: " + water_melon(4));
|
cs |
해결하는 방법은 여러가지가 있다. 문제를 볼 때 홀수와 짝수로 나눌 수 있다고 생각하였다. 그리고 입력받은 수를 i라는 변수로 1씩 카운트 하면서 i가 짝수면 '수' 라는 단어를 문자열에 넣고 훌수면 '박'을 문자열에 넣었다.
[다른풀이]
1 2 3 4 5 6 7 | def water_melon(n): s = "수박" * n return s[:n] # 실행을 위한 테스트코드입니다. print("n이 3인 경우: " + water_melon(3)); print("n이 4인 경우: " + water_melon(4)); | cs |
스라이싱 방법으로 문제를 볼 수 있다. 2 line에서는 수박으로 시작하는 문자열을 만들어주는 것에 불과하다. 중요한 것은 s[:n]부분이다. 이 뜻은 문자열 맨 처음부터 n-1까지 문자열을 살려놓는 것이다.
예를 들어 n=2일 경우에 s는 '수박수박'이 될 것이다. return될 때 수박만 남게 될 것이다.
출처 : http://tryhelloworld.co.kr/ 알고리즘 문제
'Computer Science > Problem Solving' 카테고리의 다른 글
[tryhelloworld]level1 서울에서 김서방 찾기 by파이썬 (0) | 2017.07.29 |
---|---|
[tryhelloworld]level1 삼각형 출력하기 by파이썬 (0) | 2017.07.29 |
[tryhelloworld]level2 자연수를 뒤집어 리스트로 만들기 by파이썬 (0) | 2017.07.29 |
[tryhelloworld]level1 평균구하기 by파이썬 (0) | 2017.07.29 |
[tryhelloworld]level1 짝수와 홀수 by파이썬 (0) | 2017.07.29 |