문제

제출한 코드

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if (strs.length == 1) {
            return strs[0];
        }
        StringBuilder prefix = new StringBuilder();

        String minLengthString = getMinimumLengthString(strs);
        int minLength = minLengthString.length();

        for (int i = 0; i < minLength; i++) {
            char dupChar = minLengthString.charAt(i);
            if (isDuplicateChar(strs, i, dupChar)) {
                prefix.append(dupChar);
            } else {
                break;
            }
        }

        return prefix.toString();
    }

    private boolean isDuplicateChar(String[] strs, int i, char dupChar) {
        for (String str : strs) {
            if (str.charAt(i) != dupChar) {
                return false;
            }
        }
        return true;
    }

    private String getMinimumLengthString(String[] strs) {
        String initString = strs[0];
        int initLength = strs[0].length();
        for (String str : strs) {
            if (str.length() <= initLength) {
                initLength = str.length();
                initString = str;
            }
        }
        return initString;
    }
}

잘한점

개선할 점