본 강의는 코틀린(Kotlin)의 문법강의가 아닌, 프로그래밍 훈련을 위한 강의입니다. 따라서, 본 강의에서 알려드리는 내용만으로 코딩훈련에 임하시기 바랍니다.

이중 for문의 응용

이중 for문의 다른 형태의 프로그램을 구현해보겠습니다. 먼저 아래 소스코드를 실행해보겠습니다.

fun main(args: Array<String>){
    var n = 5
    var k = 1
    println("n = $n")
    for(i in 1..n) {
        for(j in 1..i){
            print("%4d".format(k++))
        }
        println()
    }
}

결과:

n = 5
   1
   2   3
   4   5   6
   7   8   9  10
  11  12  13  14  15

바깥쪽의 열을 반복하는 for문의 인덱스 i를 이용하여 안쪽 행을 결정짓는 for문에 영향을 주게 만들어보았습니다. 이런 방법으로 다양한 문제를 풀 수 있습니다.

fun main(args: Array<String>){
    var n = 5
    var k = 1
    println("n = $n")
    for(i in 1..n) {
        for(j in 1..i){
            print("%4d".format(k++))
        }
        print("   #")
        println()
    }
}

결과 :

n = 5
   1   #
   2   3   #
   4   5   6   #
   7   8   9  10   #
  11  12  13  14  15   #

고민을 조금 해보면 테두리도 씌울 수 있을것 같습니다.

이제 숫자는 지겨우니 별을 찍어보도록 하겠습니다. 방법은 동일합니다.

fun main(args: Array<String>){
    var n = 5
    println("n = $n")
    for(i in 1..n) {
        for(j in 1..i){
            print("%4s".format("*"))
        }
        println()
    }
}

결과 :

n = 5
   *
   *   *
   *   *   *
   *   *   *   *
   *   *   *   *   *

별을 다양한 형태로 찍는 문제는 프로그래밍 기초 연습문제에서 유명합니다.

6장의 Quiz를 착실히 풀고 넘어오셨다면 다음장의 문제도 재밌게 푸실 수 있으리라 생각됩니다.

댓글남기기