programmers_혼자 놀기의 달인_java
2023. 5. 15. 19:35ㆍAlgorithm/Programmers
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/131130
import java.util.Arrays;
class Solution {
public int solution(int[] cards) {
int answer = 0;
int cardsLenght = cards.length;
int firstGroup = 0;
int secondGroup = 0;
boolean[] visited = new boolean[cardsLenght+1];
// 완전탐색
for (int i = 1; i<=cardsLenght; i++){
Arrays.fill(visited, false);
firstGroup = cardSearch(cards, i, visited);
for (int j = 1; j<cardsLenght; j++){
if (!visited[j]){
secondGroup = cardSearch(cards, j, visited);
// System.out.println(i + " " + j + " " +firstGroup + " " + secondGroup);
answer = Math.max(answer, firstGroup * secondGroup);
}
}
}
return answer;
}
// 카드 더미 탐색
public int cardSearch(int[] card, int start, boolean[] visited){
int now = start;
int cnt = 0;
while (true){
cnt++;
if(card[now-1] == start || visited[now]){ // 선택한 수가 등장 || 이미 열었던 상자
visited[now] = true;
return cnt;
}
visited[now] = true; // 방문 표시
now = card[now-1]; // 다음 위치
}
}
}
'Algorithm > Programmers' 카테고리의 다른 글
programmers_테이블 해시 함수_java (0) | 2023.05.17 |
---|---|
programmers_후보키_java (0) | 2023.05.17 |
programmers_숫자 카드 나누기_java (0) | 2023.05.15 |
programmers_하노이의 탑_java (0) | 2023.05.15 |
programmers_문자열 압축_java (0) | 2023.05.15 |