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

C++에서 N개의 자석으로 구성된 자석 그룹의 수

<시간/>

숫자 1 양극을 나타내는 반면 0 음극을 나타냅니다.

자석의 두 극은 10입니다. 또는 01. 서로 끌어당기는 자석으로 그룹을 형성할 수 있습니다. 서로 다른 극을 가진 자석은 같은 그룹에 속합니다.

여기에서 N개의 자석이 주어집니다. 그들과 함께 할 수 있는 그룹의 수를 알아야 합니다.

서로 다른 두 개의 자석이 나란히 있을 때마다 새로운 그룹이 형성됩니다. 이 경우 그룹 수를 늘리십시오.

예를 들어 보겠습니다.

입력

magnets = ["10", "01", "01", "01", "10", "01"]

출력

4

주어진 배열에서 나란히 서로 끌어당기는 4개의 자석이 있습니다. "10", "01", "10", "01"입니다.

알고리즘

  • 자석으로 어레이를 초기화합니다.
  • 쌍을 취할 때 카운트를 1로 초기화합니다.
  • 1 인덱스에서 배열 끝까지 반복하는 루프를 작성하십시오.
  • 현재 자석이 이전 자석과 같지 않으면 카운트를 증가시킵니다.
  • 카운트를 반환합니다.

구현

다음은 위의 알고리즘을 C++로 구현한 것입니다.

#include <bits/stdc++.h>
using namespace std;
int getMangetGroupsCount(string magnets[], int n) {
   int count = 1;
   for (int i = 1; i < n; i++) {
      if (magnets[i] != magnets[i - 1]) {
         count++;
      }
   }
   return count;
}
int main() {
   string magnets[] = { "10", "01", "01", "01", "10", "01" };
   int n = 6;
   cout << getMangetGroupsCount(magnets, n) << endl;
   return 0;
}

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

4