통신하는 서버 수 계산
Jan 24, 2025 am 02:21 AM1267. 통신하는 서버 수
난이도:중
주제: 배열, 깊이 우선 검색, 너비 우선 검색, 결합 찾기, 행렬, 계산
m * n 정수 행렬 그리드로 표시되는 서버 센터 지도가 제공됩니다. 여기서 1은 해당 셀에 서버가 있음을 의미하고 0은 서버가 없음을 의미합니다. 두 서버가 같은 행에 있거나 같은 열에 있으면 통신한다고 합니다.
다른 서버와 통신하는 서버 수를 반환합니다.
예 1:
- 입력: 그리드 = [[1,0],[0,1]]
- 출력: 0
- 설명: 어떤 서버도 다른 서버와 통신할 수 없습니다.
예 2:
- 입력: 그리드 = [[1,0],[1,1]]
- 출력: 3
- 설명: 세 서버 모두 하나 이상의 다른 서버와 통신할 수 있습니다.
예 3:
- 입력: 그리드 = [[1,1,0,0],[0,0,1,0],[0,0,1,0],[0,0,0,1] ]
- 출력: 4
- 설명: 첫 번째 행의 두 서버는 서로 통신할 수 있습니다. 세 번째 열의 두 서버는 서로 통신할 수 있습니다. 오른쪽 하단의 서버는 다른 서버와 통신이 불가능합니다.
제약조건:
- m == 그리드.길이
- n == 그리드[i].길이
- 1
- 1
- 그리드[i][j] == 0 또는 1
힌트:
- 각 행과 열에 컴퓨터 수를 저장합니다.
- 격리되지 않은 모든 서버를 계산합니다.
해결책:
다음 단계를 따르세요.
접근하다:
-
각 행과 열의 서버 수:
- 그리드를 탐색하여 각 행과 열에 존재하는 서버 수를 계산합니다. 이는 두 개의 배열 rowCount 및 colCount를 사용하여 수행할 수 있습니다. 여기서:
- rowCount[i]는 i행의 서버 수를 저장합니다.
- colCount[j]는 j열에 서버 수를 저장합니다.
- 그리드를 탐색하여 각 행과 열에 존재하는 서버 수를 계산합니다. 이는 두 개의 배열 rowCount 및 colCount를 사용하여 수행할 수 있습니다. 여기서:
-
통신 확인:
- 그리드의 각 서버에 대해 rowCount 및 colCount를 확인하여 다른 서버와 통신할 수 있는지 확인하세요. 둘 중 하나가 1보다 크면 서버는 다른 서버와 통신할 수 있습니다.
-
통신하는 서버 수 계산:
- 그리드를 다시 탐색하고 각 서버(값이 1인 셀)에 대해 두 개 이상의 서버가 있는 행이나 열에 속하는지 확인합니다.
PHP에서 이 솔루션을 구현해 보겠습니다: 1267. 통신하는 서버 수
<?php /** * @param Integer[][] $grid * @return Integer */ function countServers($grid) { ... ... ... /** * go to ./solution.php */ } // Test the function with the provided examples $grid1 = [[1, 0], [0, 1]]; $grid2 = [[1, 0], [1, 1]]; $grid3 = [[1, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 0, 1]]; echo countServers($grid1) . "\n"; // Output: 0 echo countServers($grid2) . "\n"; // Output: 3 echo countServers($grid3) . "\n"; // Output: 4 ?>
설명:
-
행과 열로 서버 수 계산:
- 그리드를 반복하여 각 행과 열에 서버 수(예: 1대)가 있는지 계산합니다. 이 개수를 rowCount 및 colCount 배열에 저장합니다.
-
통신 서버 식별:
- 계산 후 각 서버(값이 1인 셀)를 반복합니다. 행의 서버 수(rowCount[i] > 1) 또는 열의 서버 수(colCount[j] > 1)가 1보다 큰 경우 서버는 다른 서버와 통신할 수 있습니다. 그런 다음 결과를 증가시킵니다. 각 통신 서버의 카운터입니다.
-
출력:
- 다른 서버와 통신할 수 있는 서버의 총 개수를 반환하는 함수입니다.
시간 복잡도:
- O(m * n), 여기서 m은 행 수이고 n은 열 수입니다. 이는 그리드를 두 번 반복하기 때문입니다. 한 번은 행과 열로 서버 수를 계산하고, 한 번은 통신을 확인합니다.
이 솔루션은 주어진 제약 내에서 문제를 효율적으로 처리합니다.
연락처 링크
이 시리즈가 도움이 되었다면 GitHub에서 저장소에 별표를 표시하거나 즐겨찾는 소셜 네트워크에서 게시물을 공유해 보세요. 여러분의 지원은 저에게 큰 의미가 될 것입니다!
이렇게 더 유용한 콘텐츠를 원하시면 저를 팔로우해주세요.
- 링크드인
- 깃허브
위 내용은 통신하는 서버 수 계산의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Laravel Back End : Part 2, React가있는 React 앱 구축

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법
