해당 문제는 버전을 비교하여 1
, -1
, 0
으로 반환하는 문제이다.
sort()
메서드에 콜백으로 주기 좋은 함수인 셈
풀이 과정은 다음과 같다.
.
을 기준으로 각 버전 분리0
으로 취급하여 비교한다.function compareVersion(version1: string, version2: string): number {
// . 을 기준으로 분리 후 모두 숫자형 변환
const splitedV1 = version1.split(".").map(Number)
const splitedV2 = version2.split(".").map(Number)
// 두 버전 중 버전의 최대 길이만큼 반복
const maxLen = Math.max(splitedV1.length, splitedV2.length)
for(let i = 0; i < maxLen; i++) {
// 현재 버전이 없다면 0으로 취급
const curV1 = splitedV1[i] ?? 0
const curV2 = splitedV2[i] ?? 0
if(curV1 > curV2) return 1
if(curV2 > curV1) return -1
}
return 0
};