본문 바로가기

알고리즘

[코딩테스트] Level. 1 수박수박수박수박수?

728x90

문제 설명

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

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

 

나의 문제 풀이법. 너무 애쓴 같은 느낌이다. 

private fun solution(n: Int): String {
   var answer = ""
    return if (n % 2 == 0) {
        for (i in 1..n / 2) {
            answer += "수박"
        }
        answer
    } else {
        for (i in 1..n / 2) {
            answer += "수박"
        }
        answer +"수"
    }
}

 

 

고수님들의 풀이법.

CharArray를 만들고 난 후 index 별로 짝수나 0 이면 수, 홀수면 박을 Array에 추가 하는 방법을 사용하였다.

private fun solution(n: Int): String {
	return String(CharArray(n) { i -> if (i % 2 == 0) '수' else '박' })
}