Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 NxM 행렬의 모든 행에 있는 배열의 요소 수

<시간/>

정수 유형 요소의 배열과 주어진 행 및 열 크기의 행렬 또는 2차원 배열이 제공되며 작업은 행렬의 각 행에 있는 배열의 요소 수를 계산하는 것입니다.

입력

int arr ={ 2, 4, 6} 및 int 행렬[row][col] ={ { 2, 4, 6 }, {3, 4, 6}, {6, 2, 1}} 

출력

행 1의 배열 요소:3행 2의 배열 요소:2행 3의 배열 요소:2

설명

우리는 2, 4, 6을 요소로 포함하는 배열을 가지고 있으며 이제 배열의 요소를 2, 4 및 6은 모두 행렬의 첫 번째 행에 있으므로 행 1의 요소 수는 3이고, 유사하게 행 2의 요소 수는 4와 6만 있고 행 3의 요소 수는 2이므로 2이고 행 3의 요소 수는 2입니다. 6개가 있습니다.

입력

int arr ={ 1, 3} 및 int 행렬[row][col] ={ { 1, 4, 6 }, {3, 1, 6}, {6, 2, 4}}

출력

행 1의 배열 요소:1행 2의 배열 요소:2행 3의 배열 요소:0

설명

우리는 1과 3을 요소로 포함하는 배열을 가지고 있으며 이제 배열의 요소를 행렬의 요소와 일치시켜 행렬의 모든 행에서 2개의 요소가 발생하는지 확인합니다. 예를 들어 첫 번째 행에는 1만 존재합니다. 행렬의 행렬이므로 행 1의 요소 수는 1입니다. 마찬가지로 행 2의 요소 수는 1과 3이 모두 있으므로 2이고 1과 3 중 어느 것도 존재하지 않으므로 행 3의 요소 수는 0입니다. 

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

주어진 문제를 해결하기 위한 여러 가지 접근 방식, 즉 순진한 접근 방식과 효율적인 접근 방식이 있을 수 있습니다. 먼저 순진한 접근 방식을 살펴보겠습니다. .

  • 정수 요소의 배열과 행 및 열 크기의 행렬 입력

  • 배열의 크기를 계산하고 추가 처리를 위해 배열, 행렬 및 배열 크기를 함수에 전달합니다.

  • 행렬 행에 있는 요소 수를 저장하기 위해 임시 변수 count를 사용합니다.

  • 0부터 행렬의 행 크기까지 FOR 루프 시작

  • 루프 내에서 0부터 배열 크기까지 FOR 시작

  • arr[k]

    로 온도 설정
  • 0부터 행렬의 열 크기까지 FOR 또 다른 루프 시작

  • 루프 내부에서 IF temp =matrix[i][j]를 확인한 다음 카운트를 1 증가시킵니다.

  • 모든 행이 변경된 후 새로 고치려면 count를 0으로 설정하십시오.

  • 모든 행이 변경되기 전의 count 값을 출력합니다.

효율적인 접근

  • 정수 요소의 배열과 행 및 열 크기의 행렬 입력

  • 배열의 크기를 계산하고 추가 처리를 위해 배열, 행렬 및 배열 크기를 함수에 전달합니다.

  • 0부터 행렬의 행 크기까지 FOR 루프 시작

  • unordered_map 유형의 변수 생성

  • 0부터 행렬의 열 크기까지 FOR 또 다른 루프 시작

  • matrix[i][j]를 1로 사용하여 정렬되지 않은 맵을 설정

  • 행렬 행에 있는 요소 수를 저장하기 위해 임시 변수 count를 사용합니다.

  • 루프 내에서 0부터 배열 크기까지 FOR 시작

  • IF um[arr[j]]==1을 확인한 다음 카운트를 1 증가시킵니다.

  • 모든 행이 변경되기 전의 count 값을 출력합니다.

예(순진한 접근 방식)

#include네임스페이스 std;#define row 3#define col 3void arr_matrix(int ​​matrix[row][col], int arr[], int size){ int count =0; //행렬의 경우 for(int i=0; i 

출력

위의 코드를 실행하면 다음과 같은 출력이 생성됩니다 -

행 1의 배열 요소:3행 2의 배열 요소:2행 3의 배열 요소:2

예(효율적인 접근)

#include 이름 공간 std;#define row 3#define col 3void arr_matrix(int ​​matrix[row][col], int arr[], int size){ for (int i =0; i <행; i++){ unordered_map 음; for (int j =0; j  

출력

위의 코드를 실행하면 다음과 같은 출력이 생성됩니다 -

행 1의 배열 요소:3행 2의 배열 요소:2행 3의 배열 요소:2