Question
Given a rectangular matrix of characters, add a border of asterisks(*
) to it.
Example
For
picture = ["abc",
"ded"]
the output should be
addBorder(picture) = ["*****",
"*abc*",
"*ded*",
"*****"]
Input/Output
[execution time limit] 4 seconds (py3)
[input] array.string picture
A non-empty array of non-empty equal-length strings.
Guaranteed constraints:
1 ≤ picture.length ≤ 100
,1 ≤ picture[i].length ≤ 100
.[output] array.string
- The same matrix of characters, framed with a border of asterisks of width
1
.
- The same matrix of characters, framed with a border of asterisks of width
MY_ANSWER
def addBorder(picture):
answer = []
answer.append("*" * (len(picture[0]) + 2))
for i in range (len(picture)):
answer.append("*" + picture[i] + "*")
answer.append("*" * (len(picture[0]) + 2))
return answer
- input이 들어왔을 때 그 주변을 *로 채워넣는 것이 주된 문제, input 열의 크기에 + 2 만큼의 *로 윗 뚜껑과 아래 뚜껑을 만들어준다음
- input의 양옆에 *을 삽입한뒤 가운데에 넣어준다.
Best_ANSWER
def addBorder(picture):
l=len(picture[0])+2
return ["*"*l]+[x.center(l,"*") for x in picture]+["*"*l]
나와 똑같은 방식을 채택하였으나 비어있는 list에 답을 append하지 않고
처음 *을 얼마나 만들지 개수만 설정 후, center 함수를 이용하여 return에 한꺼번에 처리하였다.