정수로 구성된 행렬이 주어집니다. 목표는 행렬에서 동일한 요소가 모두 포함된 행의 수를 찾는 것입니다.
그림과 같이 5X4 행렬이 있는 경우 -
1 | 5 | 1 | 3 | 1 |
1 | 1 | 1 | 1 | 1 |
5 | 3 | 2 | 3 | 5 |
7 | 7 | 7 | 7 | 7 |
답은 2이며, 1행(모두 1 포함) 및 3행(7개 모두 포함)에 동일한 요소가 포함됩니다.
예를 들어 이해합시다.
입력
matrix = [ 1 1 1 1 ] [ 2 3 2 7 ] [ 3 3 3 3 ]
출력 − 동일한 요소로 구성된 행렬의 행 수는 − 2
설명 − 0행은 1을 모두 포함하고 2행은 3을 모두 포함합니다.
입력 -
matrix = [ 1 2 3 4 ] [ 1 2 3 4 ] [ 1 2 3 4 ]
출력 − 동일한 요소로 구성된 행렬의 행 수는 − 0
설명 − 모든 행에 다른 요소가 있습니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
우리는 vector
-
행렬을 벡터
> 행렬로 가져와서 초기화합니다. -
matrix.size()를 사용하여 크기를 계산합니다.
-
함수 same_rows(vector
> matrix, int size)는 행렬과 크기를 가져와서 동일한 요소가 있는 행의 개수를 반환합니다. -
초기 카운트를 0으로 합니다.
-
for 루프를 사용하여 행렬을 탐색합니다. i=0 ~ i=크기.
-
j=0에서 j
-
현재 행의 요소를 저장하기 위해 set
set_row를 사용합니다. -
set_row.insert(matrix[i][j])를 사용하여 현재 행에 대해 이 세트에 요소를 추가합니다.
-
마지막에 set_row의 크기를 확인하십시오. 1이면 이 행은 모두 동일한 요소를 갖습니다. 증분 수.
-
모든 행에 대한 모든 반복이 끝나면 최종 결과로 count를 반환합니다.
예시
#include <bits/stdc++.h> using namespace std; int same_rows(vector> matrix, int size){ int count = 0; for (int i = 0; i < size; i++){ set set_row; for (int j = 0; j < matrix[i].size(); j++){ set_row.insert(matrix[i][j]); } int set_size = set_row.size(); if (set_size == 1){ count++; } } return count; } int main(){ vector<vector<int>> matrix = { { 2, 2, 2, 2}, { 5, 5, 5, 5 }, { 2, 2, 2, 2 }, {5, 5, 5, 5} }; int size = matrix.size(); cout<<"Count of rows in a matrix that consist of same element are: "<<same_rows(matrix, size); return 0; }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다.
Count of rows in a matrix that consist of same element are: 4