티스토리 뷰

Codesignal

code signal - 15. Add Border

터보건 2020. 2. 16. 16:36

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.

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에 한꺼번에 처리하였다.

 

'Codesignal' 카테고리의 다른 글

code signal - 17. arrayChange  (0) 2020.02.19
code signal - 16. Are similar?  (0) 2020.02.16
code signal - 14. alternatingSums  (0) 2020.02.10
code signal - 13. reverseInParentheses  (0) 2020.02.09
code signal - 12. Sort by Height  (0) 2020.01.29
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함