<aside> 💬 lv0, 행렬, 조건 검사

행렬 요소의 개수와 합

문제 설명

M x N 크기의 정수 행렬이 주어집니다. 이 행렬에서 특정 조건을 만족하는 요소의 개수와 그 요소들의 합을 구하는 코드를 작성해주세요. 예를 들어, 조건이 '5 이상인 값'이라면, 행렬에서 5 이상인 값들의 총 개수와 그 합을 계산합니다.


제한 사항


입출력 예

입력 (행렬, 조건) 출력 (조건을 만족하는 요소의 개수, 합)
([[1, 2, 3], [4, 5, 6], [7, 8, 9]], 5) (5, 35)
([[10, 20], [30, 40]], 15) (3, 90)

입출력 설명

각 행렬에서 주어진 조건을 만족하는 요소들을 찾아 그 개수와 합을 반환합니다.

</aside>

😺 풀이 1. 행렬 탐색, 조건 검사

def solution(data): **#1 함수 정의**
    matrix, condition = data **#2 데이터 분리**
    count = 0 **#3 요소의 개수 초기화**
    total_sum = 0 **#4 요소의 합 초기화**
    for row in matrix: **#5 행 탐색**
        for item in row: **#6 열 탐색**
            if item >= condition: **#7 조건 검사**
                count += 1 **#8 요소의 개수 갱신**
                total_sum += item **#9 요소의 합 갱신**
    return count, total_sum **#10 요소의 개수, 요소의 합 반환**

단계별 풀이 전략

  1. 함수 정의

    코드의 첫 부분에서 solution이라는 함수를 정의합니다. 이 함수는 하나의 인자 data를 받습니다. data는 조건을 만족하는 요소의 개수와 그 요소의 합을 찾을 대상이 되는 행렬과 조건입니다. 여기서 조건은 정수형 숫자입니다.

  2. 데이터 분리

    data의 행렬과 조건을 matrix, condition 변수로 언패킹합니다.

  3. 요소의 개수 초기화

    조건을 만족하는 요소의 개수 count에 초깃값으로 0을 할당합니다.

  4. 요소의 합 초기화

    조건을 만족하는 요소의 합 total_sum에 초깃값으로 0을 할당합니다.

  5. 행 탐색

    행렬 matrix에서 순차적으로 1차원 행 배열을 row에 할당하면서 탐색합니다.

  6. 열 탐색

    탐색한 행 배열 row에서 순차적으로 열에 해당하는 숫자 데이터를 item에 할당하면서 탐색합니다.

  7. 조건 검사

    탐색 숫자 item이 조건 숫자 condition 이상이라는 조건에 맞는 지 조건 검사를 진행합니다.

  8. 요소의 개수 갱신

    item이 조건을 만족하는 숫자라면 조건을 만족하는 요소의 개수가 1 증가합니다. 그러므로 여기서 count에 1을 추가하여 요소의 개수를 갱신합니다.

  9. 요소의 합 갱신

    요소의 합은 조건을 만족하는 요소들을 더한 값이므로, 기존 요소의 합 total_sum에 바로 조건을 만족하는 item을 더해주어 요소의 합을 갱신합니다.

  10. 요소의 개수, 요소의 합 반환

    이중 for 문을 통해 item을 탐색하면서 최종 갱신된 counttotal_sum을 요소의 개수와 요소의 합으로서 반환합니다.

알아둬야 할 개념

행렬

풀이 2. 평탄화