[알고리즘] 수박수박수박수박수박수?

이유진·2024년 4월 15일
1

알고리즘

목록 보기
31/32

문제 설명

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


제한 조건

  • n은 길이 10,000이하인 자연수입니다.

입출력 예

nreturn
3"수박수"
4"수박수박"

풀이 과정

“수박” 두 글자를 하나의 묶음으로 생각하고, 이 묶음을
짝수일 경우 n / 2 만큼 반복하고, 홀수일 경우 n / 2 만큼 반복 후 “수” 를 덧붙여준다.

  1. n % 2 == 0 를 사용해 n이 짝수인지 확인한다.
    2.String(repeating: "수박", count: n / 2) 짝수일 경우, repeating을 사용해 "수박" 묶음을 n / 2번 반복한다.
    3.String(repeating: "수박", count: n / 2) + String("수") 홀수일 경우, repeating을 사용해 "수박" 묶음을 (n/2)번 반복하고, 그 뒤에 "수"를 추가한다.
    4.삼항연산자를 사용해 n % 2 == 0 조건이 참일 경우(n이 짝수)와 홀수일 경우(n이 홀수)

Solution

func solution(_ n:Int) -> String {
    return n % 2 == 0 ?  String(repeating: "수박", count: n / 2) : String(repeating: "수박", count: n / 2) + String("수")
}

4개의 댓글

comment-user-thumbnail
2024년 4월 15일

아앗 이것은 수박수박수박수박수박문제다! 엉뚱한소리지만 수박먹고싶네요
알고리즘 화이팅!

1개의 답글
comment-user-thumbnail
2024년 4월 15일

와 클로저 함수 고수! 따라쓰면서 공부하고 가야겠다.
String(repeating: count:) 잘 공부하고 가요!!
func solution: (n : Int) -> String {
return $0 %2 == 0 ? String(repeating: "수박", count: $0 / 2) : String(repeating: "수박", count: $0 / 2) + "수"
}

1개의 답글