Introfor

[Intro] matrixElementsSum 본문

Programming_prob/Codesignal

[Intro] matrixElementsSum

YongArtist 2020. 7. 18. 21:40

After becoming famous, the CodeBots decided to move into a new building together. Each of the rooms has a different cost, and some of them are free, but there's a rumour that all the free rooms are haunted! Since the CodeBots are quite superstitious, they refuse to stay in any of the free rooms, or any of the rooms below any of the free rooms.

Given matrix, a rectangular matrix of integers, where each value represents the cost of the room, your task is to return the total sum of all rooms that are suitable for the CodeBots (ie: add up all the values that don't appear below a 0).

행렬의 합을 구하는 문제인데, 0 밑에 존재하는 수는 빼고 연산을 수행한다.

def matrixElementsSum(m):
    total = 0
    for j in range(len(m[0])):
        for i in range(len(m)):
            if m[i][j] != 0:
                total += m[i][j]
            else:
                break
    return total

합을 넣을 변수 total을 선언한다. matrix는 오른쪽로 이동하면서 아래로 하나씩 검사하면서 만약 0이 나온다면 다음 반복절차를 거친다. 그래서 전체적으로 column만큼 돌고, row만큼씩 값이 0이 아니면 합을 구하고, 0이라면 다음 단계로 넘긴다.

[[0,1,1,2],
[0,5,0,0],    에서 (0,0)에서 시작해서 이 값은 0이므로 [0,0,2]이 라인은 반복을 수행하지 않도록 break를 걸고, 그 다음 
[2,0,3,3]]    (0,1)로 넘어가서 이 부분은 0이 아니므로 total의해 합을 구한다.

'Programming_prob > Codesignal' 카테고리의 다른 글

[Intro] All Longest Strings  (0) 2020.07.18
[Intro] almostIncreasingSequence  (0) 2020.07.18
[Intro] Make Array Consecutive 2  (0) 2020.07.18
[Intro] shapeArea  (0) 2020.07.18
[Intro] adjacentElementsProduct  (0) 2020.07.18
Comments