프로그램 제작자
코드 중심 개발자를 고용하십시오. 배치 기반 위치 매칭. 프로그래머의 개발자별 프로필에 가입하고 기술 호환성이 좋은 회사와 연결하십시오.
Programmer.co.kr
내 솔루션
import java.util.List;
import java.util.ArrayList;
import java.util.Comparator;
class Solo {
static boolean() visited;
static List<Integer> list=new ArrayList<>();
public int solution(int() cards) {
int answer = 0;
visited=new boolean(cards.length);
int index=0;
for(int i=0;i<cards.length;i++){
if(!visited(i)){
visited(i)=true;
dfs(cards, cards(i)-1, 1);
}
}
list.sort(new Comparator<Integer>(){
@Override
public int compare(Integer o1, Integer o2){
return o2-o1;
}
});
if(list.size()>=2)
answer=list.get(0)*list.get(1);
return answer;
}
private void dfs(int() cards, int c, int count){
if(!visited(c)){
visited(c)=true;
dfs(cards, cards(c)-1, count+1);
}
else{
list.add(count);
return;
}
}
}
- dfs가 생각나네요
- 방문한 상자에 도달할 때까지 dfs를 사용하여 검색
- 상자를 방문하면 번호가 목록에 저장됩니다.
- 목록을 내림차순으로 정렬하고 첫 번째 그룹과 두 번째 그룹 수의 곱을 반환합니다.
- 목록을 정렬할 때
- Collections.sort(list, Collections.reverseOrder()) 를 사용하는 것이 더 쉽습니다.