수박수박수박수박수박수?

jericho·2023년 12월 12일

PS(문제풀이)

목록 보기
6/12

https://school.programmers.co.kr/learn/courses/30/lessons/12922

'수박수박수...' 패턴의 길이 n 문자열 만들기.

 - 풀이 1
fun solution(n: Int): String {
    val w = "수박"
    var answer = ""
    for (i in 0 until n / 2) {
        answer += w
    }
    if (n % 2 != 0) answer += "수"
    return answer
}

패턴인 "수박" 문자열을 반복해서 붙인 다음 홀수면 '수'를 붙이기.
배열 합치기가 비효율이므로 스트링빌더를 사용하면 개선 가능.

그런데 타인 풀이에서 좋은 것을 발견했다.

 - 참고 풀이 2
fun solution(n: Int): String =
    String(CharArray(n) { i -> if (i and 1 == 0) '수' else '박' })

인덱스를 이용한 배열 초기화를 적용한 것이다.
배열에서 초기화되는 변수의 인덱스가 람다식에서 it으로 주어지는데, 아무래도 i로 사용하는 것이 익숙하다. 홀수번째는 '수', 짝수번째는 '박'으로 초기화하는 것이다.
배열의 초기값이 인덱스와 관계가 있다면 초기화에 매우 유용하다.

0개의 댓글