ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CodeSignal] Add Border
    [Developer]/ProblemSolving 2019.08.17 23:07

    이번 문제 또한 이해하기 쉬운 개념으로 이루어진 문제이다.

    역시 인트로!

     

    후후

     

    5일간 연속 수행!

     

    문제

    Given a rectangular matrix of characters, add a border of asterisks(*) to it.

    직사각형 문자의 매트릭스가 주어질 때, asterisk 심볼로 된 테두리를 그려라.

     

    주어진 테스트

    1

    Input: picture: ["abc", "ded"]

    Expected Output: ["*****", ""*abc*", "*ded*", "*****"]

    2

    Input: picture: ["a"]

    Expected Output: ["***", ""*a*", "***"]

    3

    Input: picture: ["aa", "**", "zz"]

    Expected Output: ["****", ""*aa*", "****", "*zz*", "****"]

    4

    Input: picture: ["abcde", "fghij", "klmno", "pqrst", "uvwxy"]

    Expected Output: ["*******", "*abcde*", "*fghij*", "*klmno*", "*pqrst*", "*uvwxy*", "*******"]

    5  

    Input: picture: ["wzy**"]

    Expected Output: ["*******", "*wzy***", "*******"]

     

    나의 해답

    fun addBorder(picture: MutableList<String>): MutableList<String> {
        var resultList = mutableListOf<String>()
        var lenString = picture[0].length
        var lenArr = picture.size
        var tempStr: String
        
        for (row in -1..lenArr) {
            if((row == -1) or (row == lenArr)) {
                tempStr = ""
                for (star in 1..(lenString+2)) {
                    tempStr += "*"
                }
                resultList.add(tempStr)
            } else {
                resultList.add("*"+picture[row]+"*")
            }
        }
        
        return resultList
    }

     

    느낀점

    이번 문제는 for loop를 돌릴 때, range를 -1로 시작 값을 정할 수 있다는 점을 알았다는 것 하나와, 배열의 길이, 배열 내 문자열의 길이를 측정하는 방법이 다르다는 특징을 이용한 것 하나, 마지막으로 MutableList의 element를 하나 더할 때, 그 안의 String은 더하기를 이용하여 내부 구성한 뒤, 추가가 가능하다는 점을 알게 된 것이다.

    이제는 조금씩 익숙해져 간다는 느낌이 든다.

     

     

    '[Developer] > ProblemSolving' 카테고리의 다른 글

    [CodeSignal] Add Border  (0) 2019.08.17
    [CodeSignal] alternatingSums  (0) 2019.08.17
    [CodeSignal] reverseInParentheses  (0) 2019.08.16

    댓글 0

Designed by Tistory.