LeetCode Longest Common Prefix

개발프로그·2024년 3월 6일
0

코딩테스트

목록 보기
3/7

이지 난이도 세 번째 문제를 도전해본다.

출처: https://leetcode.com/problems/longest-common-prefix/description/

이거 이지 맞냐?...

처음 생각한 접근법은 이중 for문을 사용하고 String을 배열로 바꿔 임시 변수에 저장해 가면서 임시 변수에 저장한 값과 후에 들어오는 값을 비교해서 다르면 빈 문자열로 return 하려고 했지만 바로 막혔다.

    public String longestCommonPrefix(String[] strs) {
        // 1. 첫 번째 for문: strs.length
        // 2. 두 번째 for문: strs[i].toCharArray().length;
        // 3. temp에 저장해 i에 맞는 값 저장

        String temp = "";

        for (int i = 0; i < strs.length; i++) {
            char[] charArr = strs[i].toCharArray();

            for (int j = 0; j < charArr.length; j++) {
                temp += charArr[j];
            }
        }

        return temp;
    }

위 코드와 같은 방식으로 하려고 했지만 temp 변수가 다시 String이 되어서 비교를 할수가 없다..

1시간정도 다양한 방식으로 고민하고 시도해 봤지만 방법이 떠오르지 않는다. 솔루션을 보자..

솔루션을 보니 sort()를 사용한다. Java에서 sort()를 다양한 방법으로 지원한다.

지금까지의 개발 방식은 구글링과 for문, if-else문으로 충분했기 때문에 문제에 대한 접근을 for와 if문만 사용하는 방식으로 했다. 하지만, 코딩테스트는 확실히 다른 것 같다. 다양한 문법을 알고 적절하게 적용해야 하는 것 같다.

솔루션에 charAt도 있지만 이게 쓰일지라고는 생각지도 못 했다. 공부할 때 분명 본 메서드이지만 본 것과 이해하는 것과 직접 해보는 것은 확실히 다른 것 같다.

이제는 꾸준히 문제를 부딪히며 코딩 테스트의 접근 방법, 응용력, 문법에 대해서 익혀가야 할 것 같다.

python으로 했어도 똑같이 못 풀었을 것 같다..

profile
신입개발자

0개의 댓글