inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

2026 코딩테스트 올인원 [JAVA]

[문제풀이] 태어난김에 세계일주1

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

2

김주현

작성한 질문수 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

인프런 AI 인턴

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

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

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

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

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

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

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

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

커리큘럼 중 정렬 관련 질문

0

9

1

코테 사이트 로그인 불가

0

19

1

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

0

21

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

81

2

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

0

97

3

추후 학습 계획 질문

0

87

1