코테준비 - Compare Version Numbers

정상화·2023년 2월 26일

LeetCode

목록 보기
154/222

Compare Version Numbers

class Solution {
public:
    int compareVersion(string version1, string version2) {
        vector<int> versionNum1;
        vector<int> versionNum2;
        for (int i = 0; i < version1.length(); i++) {
            string revision = "";
            while (i < version1.length() && version1.at(i) != '.') {
                revision += version1.at(i);
                i++;
            }
            versionNum1.push_back(stoi(revision));
        }
        for (int i = 0; i < version2.length(); i++) {
            string revision = "";
            while (i < version2.length() && version2.at(i) != '.') {
                revision += version2.at(i);
                i++;
            }
            versionNum2.push_back(stoi(revision));
        }
        int n1 = versionNum1.size();
        int n2 = versionNum2.size();
        bool swaped = false;
        if (n1> n2) {
            swaped = true;
            swap(versionNum1, versionNum2);
        }
        for (int i = 0; i < abs(n1 - n2); i++) {
            versionNum1.push_back(0);
        }

        for (int i = 0; i < versionNum1.size(); i++) {
            if(versionNum1.at(i)>versionNum2.at(i)) {
                return swaped ? -1 : 1;
            } else if(versionNum1.at(i)<versionNum2.at(i)){
                return swaped ? 1 : -1;
            }
        }

        return 0;
    }
};
profile
백엔드 희망

0개의 댓글