Byte by Byte

821. Shortest Distance to a Character.cpp 본문

개발 로그/알고리즘

821. Shortest Distance to a Character.cpp

CyberSoak 2021. 11. 16. 23:42

 

🔑 주어진 s의 index를 기준으로, 찾고자하는 c가, 왼쪽/오른쪽으로 얼마나 떨어져있는지 각각 계산하고, 그 거리중 짧은 거리를 채택한다. 단, 찾아도 없을 경우를 대비해서, flag를 만들어야 한다. 

class Solution {
public:
    vector<int> shortestToChar(string s, char c) {
        vector<int>res;
        for(int i =0; i< s.size(); i++){
            int righttmp=-1;
            int lefttmp=-1;
            
            int ruse=0;
            for(int j = i; j<s.size(); j++){
                righttmp++;
                if(s[j]==c){
                    ruse =1;
                    break;
                }
            }
            int luse =0;
            for(int k = i; k>=0; k--){
                lefttmp++;
                if(s[k]==c){
                    luse =1;
                    break;
                }
            }
            if(luse == 0) lefttmp = INT_MAX;
            if(ruse == 0) righttmp = INT_MAX;
            res.push_back(min(righttmp,lefttmp));
        }
        return res;
    }
};