문제 출처:https://leetcode.com/problems/longest-common-prefix/
문제 분석
- prefix로 문자열을 보기전에 가장 작은 문자열의 길이를 먼저 구해줍니다.
- 그 후에 그 길이만큼 loop
- 각 vector의 size만큼 loop
- 현재 보고있는 문자와 다른지 비교를 해주고 다르다면 break로 나와서 그만둡니다.
- 그만둘 경우 loop를 빠져나옵니다.
- 같다면 string answer에 값을 추가해줍니다.
코드는 다음과 같습니다:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string answer = "" ;
bool is_common = true ;
int minimum = 200 ;
for(string str : strs)
if(str.length() < minimum)
minimum = str.length() ;
for(int i = 0 ; i < minimum ; i++){
char c = strs[0][i] ;
for(int j = 1 ; j < strs.size() ; j++){
if(c != strs[j][i]){
is_common = false ;
break ;
}
}
if(is_common)
answer.push_back(c) ;
else
break ;
}
return answer ;
}
};
해당 문제는 Github에서도 보실 수 있습니다:
https://github.com/gurcks8989/CodingTest/blob/master/LeetCode/P14_Longest_Common_Prefix.cpp
훈수 및 조언은 언제든 환영입니다.