inflearn logo
강의

講義

知識共有

2026 コーディングテスト・オールインワン [JAVA]

[問題解説] 生まれたついでに世界一周1

태어난김에 세계일주 시간 초과

10

juhyeon1114

投稿した質問数 2

0

class Solution {

	int answer = 0;

	public void dfs(int[][] countries, boolean[] visited, int balance, int count) {
        answer = Math.max(answer, count);
		for (int i = 0; i < countries.length; i++) {
			if (visited[i] || countries[i][1] > balance) {
				continue;
			}

			visited[i] = true;
			dfs(countries, visited, balance - countries[i][0], count+1);
			visited[i] = false;
		}
	}

	public int solution(int balance, int[][] countries) {
		var visited = new boolean[countries.length];
		dfs(countries, visited, balance, 0);
		return answer;
	}

이렇게 결과 제출하였는데, '시간 초과'라고 계속 뜨는데, 뭐가 잘못됐는지 잘 모르겠습니다.. ㅡㅜ

java 코딩-테스트 알고리즘 data-structure

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 김주현님!

김주현님의 코드에서 발생하는 ‘시간 초과’ 문제는 코드의 효율성에 관련된 부분일 가능성이 큽니다. DFS는 모든 가능한 경로를 탐색하기 때문에, 경우에 따라 탐색 시간의 상한이 높아질 수 있습니다. 특히 countries 배열이 커질 경우, 탐색할 경우의 수가 기하급수적으로 증가합니다. 이를 최적화하기 위한 몇 가지 방법을 제시해 드리겠습니다:

  1. 상태 저장(State Caching): 중복된 상태의 탐색을 피하기 위해 메모이제이션 기법을 사용할 수 있습니다. 이미 탐색한 상태를 저장하고, 동일한 상태가 나타나면 바로 결과를 반환하도록 합니다.

  2. 제한적인 탐색: 시간이 많이 소모되는 부분을 줄이기 위해 불필요한 경로를 조기에 종료할 수 있습니다. 예를 들어, 특정 잔고 이하로는 더 이상 탐색하지 않도록 제한하여 효율성을 높일 수 있습니다.

  3. 순서 조정: 가능하다면, countries 배열을 방문 비용의 오름차순으로 정렬하여 더 빨리 종료할 수 있는 경로를 우선적으로 탐색하는 기준을 마련합니다.

아래 URL에서 유사한 상황에 대한 해결 방법을 다룬 답변을 참조하여 추가적인 최적화 방법을 탐색할 수 있습니다:

위의 조정 사항을 통해 코드의 효율성을 높일 수 있을 가능성이 큽니다. 개선된 알고리즘을 통해 문제를 해결하시기를 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

코딩 테스트 All-in-One(Java)' 강의 노션 교재 권한문의

0

6

1

커리큘럼 중 정렬 관련 질문

0

12

1

코테 사이트 로그인 불가

0

20

1

[할인쿠폰] 코테의 바이블[JAVA] 50% 할인 쿠폰 관련

0

22

1

part8 Notion 링크

0

30

1

잠겨버린 사물함 시간초과 관련 질문입니다.

0

29

1

Climbing Stairs 문제 basecase 생각하는 방법

0

34

1

DFS/BFS

1

42

2

노션 링크 질문드립니다!

0

78

3

[문제풀이] network delay time

0

69

2

위상정렬 구현 관련

0

83

3

코딩테스트를 위한 JAVA 질문 있습니다!

0

93

1

점진적과부하 문제 - 시간 초과 오류

0

83

2

예제 2번 오류

0

82

2

part5 홍팀청팀 테스트케이스 오류

1

84

1

코테 사이트 네트워크 연결....

1

96

2

DP-다익스트라

0

79

2

코테 사이트 네트워크 연결 문제 확인 부탁드립니다.

2

93

2

코테 사이트에 접속이 안됩니다.

0

102

2

노션 링크가 어디있나요?

0

116

2

정답과 동일하게 작성 후 실행 또는 제출했음에도 시간초과

0

109

4

part6. 구름의 개수 풀이 시간초과 이유

0

87

2

DFS vs BFS 중 BFS 추천해주신 것 관련 질문

1

82

2

part5. 청팀홍팀 풀이 질문 드립니다.

0

97

3