코드카타 - 직사각형 별 찍기

2024. 7. 1. 11:08코드카타(CodeKata)

문제 설명
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

제한 조건
n과 m은 각각 1000 이하인 자연수입니다.
예시
입력

5 3
출력

*****
*****
*****

 

풀이

fun main(args: Array<String>) {
    val (a, b) = readLine()!!.split(' ').map(String::toInt)
    var aaa = ""
    var bbb = ""
    var cnt = 0
    var cnt2 = 0
    
    while (cnt2 < b){
        while (cnt < a){
            aaa += "*"
            cnt += 1
            // println(aaa)
        }
        bbb += "${aaa}\n"
        cnt2 += 1
        // println(bbb)
    }
    println("${bbb}")

}

 

주의사항

- 줄바꿈(\n)을 쓸 때엔 따옴표 안에서 써야 한다.

- .map()

  - 컬렉션 또는 시퀀스의 요소에 주어진 변환 함수를 적용해 새 컬렉션을 반환하는 함수

  - 원래의 컬렉션을 변경하징 않고 새로운 변환된 컬렉션을 생성

val newList = oldList.map { element -> transform(element) }

  - oldList라는 기존의 컬렉션의 각 element에 transform()을 통해 새로운 변환을 적용하고 newList로 생성

  - 예시

val numbers = listOf(1, 2, 3, 4, 5)
val doubled = numbers.map { it * 2 }
println(doubled) // 출력: [2, 4, 6, 8, 10]