😎풀이

  1. s를 문자 단위로 분리
  2. 캐릭터 코드에 맞추어 a는 97 ... z는 122까지 설정
  3. 각 문자까지의 합 계산
  4. 현재까지의 합을 기준으로 배열을 좌, 우 동일한 합이 발생하는지 판별
  5. 동일한 합의 두 배열로 나눌 수 있는지 여부 반환
function scoreBalance(s: string): boolean {
    const n = s.length
    const splitted = [...s]
    const numS = splitted.map(char => char.charCodeAt(0) - 96)
    const sums = [numS[0]]
    for(let i = 1; i < n; i++) {
        sums.push(sums[i - 1] + numS[i])
    }
    for(let i = 0; i < n; i++) {
        const leftSum = sums[i]
        const rightSum = sums[n - 1] - leftSum
        if(leftSum === rightSum) return true
    }
    return false
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글