[LeetCode] 2566. Maximum Difference by Remapping a Digit

Chobby·4일 전
1

LeetCode

목록 보기
761/773

😎풀이

  1. num을 문자열 형변환
  2. 최댓값을 찾는 경우, 9가 아닌 가장 먼저 등장하는 수를 모두 9로 변환하면 최대 수가 됨
  3. 최솟값을 찾는 경우, 가장 먼저 등장하는 수를 모두 0으로 변환하면 최소 수가 됨
  4. 최댓값 - 최솟값 연산을 통해 두 값의 차 반환
function minMaxDifference(num: number): number {
    let min = Infinity
    let max = -Infinity
    const strNum = String(num)
    for(const char of strNum) {
        if(char === '9') continue
        const replaced = strNum.replaceAll(char, '9')
        max = Number(replaced)
        break
    }
    const replaced = strNum.replaceAll(strNum[0], '0')
    min = Number(replaced)
    if(max === -Infinity && min === Infinity) return num
    if(max === -Infinity) return num - min
    if(min === Infinity) return max
    return max - min
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글