이번 문제 또한 이해하기 쉬운 개념으로 이루어진 문제이다.
역시 인트로!
문제
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] alternatingSums (0) | 2019.08.17 |
---|---|
[CodeSignal] reverseInParentheses (0) | 2019.08.16 |
댓글