관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 문자열 반복해서 출력하기 (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - 문자열 반복해서 출력하기 (Kotlin)

참깨빵위에참깨빵_ 2023. 11. 25. 20:47
728x90
반응형
문자열 str, 정수 n이 주어진다. str이 n번 반복된 문자열을 만들어 출력하라

 

 

반복이 필요하다면 for, while 등을 사용할 수 있다. 문제에서 기본으로 주어지는 코드는 아래와 같다.

 

fun main(args: Array<String>) {
    val input = readLine()!!.split(' ')
    val s1 = input[0]
    val a = input[1]!!.toInt()
}

 

 

"string 5"를 입력하면 공백을 기준으로 분리하는 split()의 결과로 string, 5로 분리될 것이다.

그럼 a에 몇 번 반복해야 하는지에 대한 숫자가 담길 것이고, 이 값만큼 반복해서 s1을 반복 출력하면 된다.

for문을 사용한다면 아래처럼 작성할 수 있다.

 

fun main(args: Array<String>) {
    val input = readLine()!!.split(' ')
    val s1 = input[0]
    val a = input[1]!!.toInt()
    for (i in 0 until a) {
        print(s1)
    }
}

 

 

for문에서 unitl을 쓰면 until 오른쪽 숫자보다 1 작은 범위를 반복한다. 위 코드의 경우 a가 5라면 0부터 4까지 총 5회 반복한다. 잘 모르겠다면 코틀린의 for문과 range 개념을 검색해서 확인하고 온다.

print()를 사용한 이유는 문제의 출력을 보면 같은 문자열을 연속해서 n번 붙여 출력하고 있다. 이 경우 println()은 개행문자의 영향으로 세로로 출력되기 때문에, 개행문자 없이 그냥 오른쪽에 붙여서 쭈욱 출력하는 print()를 써야 한다.

 

그리고 코틀린에는 반복할 때 사용할 수 있는 다른 함수가 있다. 아래 코드는 위와 동일하게 출력된다.

 

fun main(args: Array<String>) {
    val input = readLine()!!.split(' ')
    val s1 = input[0]
    val a = input[1]!!.toInt()
    repeat(a) {
        print(s1)
    }
}

 

repeat() 함수는 소괄호 안에 몇 번 반복할지에 대한 숫자를 넣고, 뒤에 잇따르는 중괄호 블록(람다) 안에 반복하는 동안 실행할 코드를 넣는다. 소괄호 안에 0을 넣을 경우 중괄호 블록 안의 코드는 실행되지 않는다. 0회 반복한다고 썼기 때문에 당연히 돌지 않는 것이니, 반복 횟수를 넣을 때 주의하는 게 좋다.

반응형
Comments