[LeetCode] 2511. Maximum Enemy Forts That Can Be Captured

Chobby·2025년 11월 4일
1

LeetCode

목록 보기
749/764

😎풀이

  1. forts 순회
    1-1. forts[i]가 우리 기지(1)라면, 앞과 뒤 순찰을 시작
    1-2. 현재 지점부터 시작 지점까지 순회
    1-3. 현재 지점부터 종료 지점까지 순회
    1-4. 빈 요새(0)라면, 점령 가능 카운팅
    1-5. 상대 기지(-1) 혹은 우리 기지를 탐색한다면 탐색 중 발견한 모든 요새를 점령할 수 있다.
  2. 최대 점령 가능 요새의 수 반환. 최대 점령 가능 요새의 수 반환
function captureForts(forts: number[]): number {
    let maxCapture = 0
    for(let i = 0; i < forts.length; i++) {
        if(forts[i] !== 1) continue
        let forward = 0
        let backward = 0
        for(let j = i - 1; j >= 0; j--) {
            if(forts[j] === 0) {
                backward++
                continue
            }
            if(forts[j] === -1) maxCapture = Math.max(maxCapture, backward)
            break
        }
        for(let j = i + 1; j < forts.length; j++) {
            if(forts[j] === 0) {
                forward++
                continue
            }
            if(forts[j] === -1) maxCapture = Math.max(maxCapture, forward)
            break
        }
    }
    return maxCapture
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글