
😎풀이
- 높이 계산 헬퍼 함수 정의
1-1. 필요 공 수를 1씩 증가시키며, 현재 차례의 공을 필요한 만큼 제거하며 반복
1-2. 매 반복 시점에 높이를 증가
1-3. 최종 높이 반환환
- 붉은 공으로 삼각형을 만들기 시작한 경우의 높이 계산
- 푸른 공으로 삼각형을 만들기 시작한 경우의 높이 계산
- 두 높이 중 더 큰 값 반환
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
}