본문 바로가기

Algorithm/Brute Force

(C++) - LeetCode (easy) 14. Longest Common Prefix

반응형

https://leetcode.com/problems/longest-common-prefix/

 

Longest Common Prefix - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

전수조사 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

strs를 문자열의 길이가 짧은 순으로 정렬해줍니다. 정답을 반환할 ans를 선언해줍니다.

📔 풀이과정

strs[0]이 가장 짧은 문자열이므로 이 size만큼이 최대 prefix입니다. 이에 대해 for loop를 수행합니다.

모든 문자열의 i번째 문자가 같다면 ans에 해당 문자를 더해줍니다.

📔 정답출력

ans를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    static bool cmp(string &a, string &b){
        if(a.size() == b.size()) return a < b;
        return a.size() < b.size();
    }
    
    string longestCommonPrefix(vector<string>& strs) {
        sort(strs.begin(), strs.end(), cmp);
        string ans;
        
        for(int j = 0; j < strs[0].size(); j++){
            int isValid = 0;
            int i = 1;

            for(; i < strs.size(); i++){
                if(strs[0][j] != strs[i][j]) {
                    isValid = 1; 
                    break;
                }
            }
            
            if(!isValid) {
                ans += strs[0][j];
            }
            
            else {
                break;
            }
        }
        
        return ans;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.