[LeetCode] 3200. Maximum Height of a Triangle

Chobby·2025년 12월 25일

LeetCode

목록 보기
872/987

😎풀이

  1. 높이 계산 헬퍼 함수 정의
    1-1. 필요 공 수를 1씩 증가시키며, 현재 차례의 공을 필요한 만큼 제거하며 반복
    1-2. 매 반복 시점에 높이를 증가
    1-3. 최종 높이 반환환
  2. 붉은 공으로 삼각형을 만들기 시작한 경우의 높이 계산
  3. 푸른 공으로 삼각형을 만들기 시작한 경우의 높이 계산
  4. 두 높이 중 더 큰 값 반환
function maxHeightOfTriangle(red: number, blue: number): number {
    let maxHeight = 0
    const redFirst = getHeight(red, blue)
    const blueFirst = getHeight(blue, red)
    return Math.max(redFirst, blueFirst)
};

function getHeight(first: number, second: number) {
    let height = 0
    let remain = 1
    let nextTarget: 'first' | 'second' = 'first'
    while((nextTarget === 'first' && first >= remain) || (nextTarget === 'second' && second >= remain)) {
        if(nextTarget === 'first') {
            first -= remain
            nextTarget = 'second'
        } else {
            second -= remain
            nextTarget = 'first'
        }
        height++
        remain++
    } 
    return height
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글