>  기사  >  백엔드 개발  >  C++를 사용하여 이진 행렬의 종료점 변환

C++를 사용하여 이진 행렬의 종료점 변환

王林
王林앞으로
2023-08-30 09:29:10532검색

C++를 사용하여 이진 행렬의 종료점 변환

이진 행렬은 컴퓨터 프로그래밍 용어로 0과 1로 구성된 행과 열의 격자를 나타냅니다. 프로그래밍 인터뷰와 대회에서 직면하게 되는 코딩 문제 중 하나는 이진 행렬의 종료점을 결정하는 것입니다. 이 기사에서는 C++를 사용하여 이 문제를 해결하는 다양한 방법을 설명합니다.

문법

알고리즘을 자세히 살펴보기 전에 앞으로 보여드릴 코드 예제에 자주 나타나는 구문을 익히는 것이 도움이 될 수 있습니다.

으아악

알고리즘

이제 이진 행렬에서 출구점을 찾는 단계별 알고리즘을 간략하게 설명하겠습니다. -

  • 현재 셀 위치를 (0, 0)으로 초기화합니다.

  • 현재 셀부터 시작하여 행렬을 탐색합니다.

  • 현재 셀이 1이면 오른쪽, 아래쪽, 왼쪽, 위쪽 우선 순위대로 다음 셀로 이동합니다.

  • 현재 셀이 0이면 루프를 종료하고 현재 셀 위치를 종료 지점으로 반환합니다.

  • 출구 지점을 찾거나 모든 셀을 방문할 때까지 3단계와 4단계를 반복하세요.

방법 1

우리가 권장하는 첫 번째 방법은 while 루프와 조건문을 구현하여 알고리즘을 실행하는 것입니다. 다음은 이러한 구현이 어떤 모습인지 보여주는 예입니다.

으아악

출력

으아악

방법 2

셀 이동을 처리하기 위해 두 번째 방법은 스위치 문과 결합된 do while 루프를 사용합니다. 참고로 다음은 그러한 구현이 어떤 모습인지 보여주는 예입니다 −

으아악

출력

으아악

Explanation

의 중국어 번역은

Explanation

입니다.

'findExitPoint' 함수는 제공된 코드로 설계되었습니다. 그 목적은 이진 행렬을 입력으로 받아들이고 출구 지점의 좌표에 해당하는 정수 쌍을 출력하는 것입니다. 이 함수는 행렬을 탐색하고 종료점을 찾기 위해 설명된 알고리즘을 따릅니다.

두 가지 구현 기술을 모두 사용하여 행렬을 탐색할 때 현재 셀 위치를 추적하기 위해 'x' 및 'y' 변수를 활용합니다. 그런 다음 루프를 사용하여 우선 순위(오른쪽, 아래, 왼쪽, 위)에 따라 행렬을 이동합니다.

while 루프를 사용하여 각 셀의 값을 확인하고 if-else 문을 사용합니다. 현재 셀이 1이라고 가정하고 지정된 방향의 다음 셀로 이동합니다. 현재 셀이 0이면 루프를 종료하고 현재 셀 위치를 종료 지점으로 반환합니다.

방법 2는 do-while 루프와 스위치 문을 사용하여 셀 이동을 처리합니다. 탐색 프로세스를 효율적으로 만들기 위해 주어진 각 현재 셀 값에 해당하는 방향으로 이동하는 것을 구체적으로 목표로 하는 조건 기반 실행 경로를 사용합니다. 기본적으로 값이 1인 현재 셀이 처리되면 x 및 y 좌표 값에 필요한 수정 사항을 수용하도록 빠르게 조정됩니다. 현재 셀이 0이라고 가정하고 루프를 종료합니다.

`main` 함수에서는 이진 행렬을 초기화하고 `findExitPoint` 함수를 호출하여 종료 지점의 좌표를 가져옵니다. 마지막으로 'cout'을 사용하여 종료점의 좌표를 인쇄합니다.

결론

자주 접하는 프로그래밍 작업은 이진 행렬에서 출구점을 찾는 것인데, 이 작업은 다양한 해결 경로를 제안합니다. 이 기사에서는 이러한 장애물을 극복하기 위해 C++ 코드로 구현된 두 가지 방법을 자세히 살펴보겠습니다. 이러한 알고리즘을 성공적으로 적용하면 이진 행렬의 끝 위치를 효율적으로 결정하거나 끝 위치를 가리킬 수 있습니다. 원하는 코딩 스타일 선호도와 최종 목표에 맞는 전략을 선택하는 것을 잊지 마세요.

위 내용은 C++를 사용하여 이진 행렬의 종료점 변환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제