본문 바로가기

코딩테스트/Programmers

[Programmers/프로그래머스]수박수박수박수박수박수?

728x90
반응형

문제 설명

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.

제한 조건
  • n은 길이 10,000이하인 자연수입니다.
입출력 예
n return
3 "수박수"
4 "수박수박

풀이

이 문제는 먼저 문자열이 출력되어야 하는 패턴에 대해 알아봐야한다.

  • "수박수박수박수..."를 살펴볼 때 제일 첫번째를 0번으로 생각하고 보면 0을 포함한 짝수번째는 "수"가 출력되고 홀수번째에는 "박"이 출력된다.

그렇다면 0~n까지 출력되는 숫자를 2로 나눈 나머지가 0이면 "수"를 넣고 0이 아니면 "박"이 넣은 리스트를 만들고 문자열로 변환하면 된다.

  • 리스트 컴프리헨션과 조건문을 이용해 리스트를 생성
['수' if i%2==0 or i==0 else '박' for i in range(0,n)]
  • 이 리스트를 join() 메서드로 문자열로 만들어 반환
def solution(n):
    return ''.join(['수' if i%2==0 or i==0 else '박' for i in range(0,n)])

 

728x90
반응형