inflearn logo
강의

Course

Instructor

Java Coding Test - IT Conglomerate Problem Set

6. "Alpha Code" Problem Solution

알파코드 풀이질문입니다

216

5jeong

3 asked

0

전문제 "ip주소"와 비슷하게 해결하였는데 이렇게 풀면 시간초과가 발생할까요?

class Solution {
    static int n, answer;

    static void dfs(int L, String s) {
        if (L == n) {
            answer++;
        } else {
            for (int i = L; i < n; i++) {
                String temp = s.substring(L, i + 1);
                if (check(temp)) {
                    dfs(i + 1, s);
                }
                else{
                    break;
                }
            }
        }

    }

    static boolean check(String str) {
        if (str.charAt(0) == '0') {
            return false;
        }
        int num = Integer.parseInt(str);
        return num >= 1 && num <= 26;
    }

    public int solution(String s) {
        answer = 0;
        n = s.length();
        dfs(0, s);

        return answer;
    }

    public static void main(String[] args) {
        Solution T = new Solution();
        System.out.println(T.solution("25114"));
        System.out.println(T.solution("23251232"));
        System.out.println(T.solution("21020132"));
        System.out.println(T.solution("21350"));
        System.out.println(T.solution("120225"));
        System.out.println(T.solution("232012521"));
    }
}

java 코딩-테스트

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. sdqkmlqdwkmqwdl님, 질문 주셔서 감사합니다.

주어진 코드에서는 깊이 우선 탐색(DFS)를 이용하여 각 단계에서 가능한 모든 문자열 조합을 확인하고 있습니다. 이러한 방법은 경우의 수가 많을 때 시간 복잡도가 기하급수적으로 증가할 수 있어 시간 초과가 발생할 가능성이 높습니다.

ip주소 문제와 이 알파코드 문제는 유사한 부분이 있지만, 서로 다른 문제점을 가지고 있을 수 있으니 이 점을 고려하셔야 합니다. 특히, 알파코드 문제에서는 불필요한 경우의 수를 줄이거나, 동적 계획법(Dynamic Programming, DP)을 사용하여 이미 계산한 부분 결과를 재사용하는 방법으로 최적화할 수 있습니다.

문제의 구체적인 제약 조건이나 입력 값의 크기에 따라 최적화 방법이 달라질 수 있으므로, 성능 개선을 위해서는 주어진 입력 값 대해 시간 복잡도를 분석하고, 필요한 경우 메모이제이션(Memoization)과 같은 기술을 적용하여 중복 계산을 최소화하는 것을 고려해 볼 수 있습니다.

각주기식 접근에 대한 고민과 최적화 방법 탐색을 계속해 보시기 바랍니다. 문제 해결에 도움이 되시길 바랍니다.

비밀번호

0

65

1

과일 가져가기 이러한 경우에는 반례가 생기지 않나요?

0

161

2

cpu 스케줄링

0

105

2

외부 문제 질문

0

122

2

가장 많이 사용된 회의실

0

117

2

심사위원 문제 시간복잡도 질문

0

127

1

현관문 출입순서

0

96

1

미로의 최단거리 통로

0

74

1

집으로 이동 문제 코드

0

124

1

채점 사이트 개설

0

161

2

송아지를 잡자

1

110

1

다익스트라 + 환승횟수

0

135

2

문제풀이 해설 질문입니다.

0

124

2

"이동 횟수" 문제가 변형된다면?

0

155

2

예제 3번의 정답이 이해가 되지 않아요 선생님 ㅜㅜ

0

248

1

"비밀번호" 문제 확인 부탁드립니다!

0

170

1

최대 길이 연속수열 질문

0

192

1

잃어버린 강아지 문제 count 관련 질문있습니다

0

202

1

바둑대회 질문입니당

0

221

1

5. "최대 길이 바이토닉 수열" 에서 설명해주신 방법과 제가 직접 구현한 방법이 달라, 확인 한번 부탁드립니다

0

310

1

7번 비밀 번호 문제에 시간복잡도가 궁금합니다!

0

162

1

혹시 이렇게 작성해도 괜찮나요?

0

284

2

문제풀이 확인 부탁드립니다.

0

244

1

혼자서 푼 문제 확인 부탁드립니다.

0

298

1