JSITCLUB
파이썬 - 프로그래머스 - 수박수박수박수 본문
프로그래머스 level 1
문제 설명
길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다.
제한 조건
-
n은 길이 10,000이하인 자연수입니다.
입출력 예
n |
return |
3 |
"수박수" |
4 |
"수박수박" |
코딩테스트 연습 - 수박수박수박수박수박수?
길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다. 제한 조��
programmers.co.kr
풀이 및 코드 |
문제요약
이 문제는 홀수번째 일때는 '수'를 짝수번째일때는 '박'이 적힌 n개의 문자열을 return하는 문제입니다.
문제해설
이 문제와 같이 반복 하면서 조건을 확인하는 형태는 아주 단순하지만, 무척 많이 사용되는 형태이므로 문제풀때 염두하시고, 꼭 기억하시기 바랍니다.
#1
먼저 문자열을 return하므로 빈 변수를 만듭니다. 여기서는 answer를 사용하겠습니다.
n번 반복하는 반복문을 만듭니다.(i는 0 ~ n-1 값이 담길겁니다.)
#2
인덱스를 나타내는 i 값이 짝수면 "수" 홀수면 "박"을 변수에 넣습니다.
이때 원래 있는 answer값의 맨뒤에 "수" 나 "박"을 계속 붙여야 하므로 answer=answer+"수" 형태를 사용합니다. (누적)
복합 대입 연산자 += 를 사용하는 것도 가능합니다.
결과코드
def solution(n):
#1
answer = ''
for i in range(n):
#2
if i%2==0:
answer+="수"
else:
answer+="박"
return answer
조금 다른 방법은 "수박"을 n/2번 반복하고, 홀수일때 마지막에 '수'를 붙이는 방법입니다. 여기서 주의 할것은 n/2는 실수형이 되고, 실수형은 range()의 매개변수로 사용할 수 없으니 int()로 형변환을 꼭 해주어야 합니다.
def solution(n):
answer = ''
for i in range(int(n/2)):
answer+="수박"
if n%2==1:
answer+="수"
return answer
'파이썬 > 문제풀이' 카테고리의 다른 글
파이썬 - 프로그래머스 - 가운데 글자 가져오기 (0) | 2020.01.03 |
---|---|
파이썬 - 프로그래머스 - 서울에서 김서방 찾기 (0) | 2020.01.02 |
파이썬 - 프로그래머스 - 문자열을 정수로 바꾸기 (0) | 2019.12.30 |
파이썬 - 프로그래머스 - 직사각형 별찍기 (0) | 2019.12.28 |
파이썬 - 프로그래머스 - 짝수 와 홀수 (0) | 2019.12.28 |