https://school.programmers.co.kr/learn/courses/30/lessons/86971
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
STEP1. 모든 연결되어있는 조합 중 하나씩 바꿔서 둘로 나눈다. : map[i][j]=0, map[j][i]=0 으로 임시 변경 후 원상복구
STEP2. 나눠진 노드에서, 서로 연결되어있느 노드의 갯수를 구한다. : dfs 함수 참고
문제 다 푼 후 점검!
생각보다 쉽게 풀렸다.
그래도 다시 보완한다면, 나는 dfs를 리턴형 void로 풀었지만 int 형으로 바꾸는게 더 깔끔할 것 같다.
- 리턴형을 void 로 하기 위해서 전역변수 reulst를 사용하고, dfs함수에서 적절한 값을 찾을때 마다 reulst++를 해줬다.
- 리턴형을 int로 변경한다면, 전역변수를 초기화하는 부분을 2번이나 없앨 수 있다. dfs함수를 실행할때마다 변수값을 더해주면된다.
아래는 dfs의 리턴값을 int형으로 변경한 내용
dfs의 결과값을 sum 변수에 계속 더해주면 된다 .!
'Algorithm Study' 카테고리의 다른 글
[프로그래머스] 최솟값만들기(level.2) / JAVA (0) | 2022.10.22 |
---|---|
[프로그래머스] JadenCase문자열 만들기 (level.2) / Java / String, split 함수 사용 (0) | 2022.10.19 |
[프로그래머스] 프린터 (level.2) / JAVA / 큐, 우선순위 큐 (1) | 2022.10.05 |
[프로그래머스] 여행경로(level.3) / JAVA / DFS,BFS (복습.완!) (0) | 2022.09.29 |
[프로그래머스] 피로도 (level.2)/ JAVA / BruteForce (복습.완!) (0) | 2022.09.29 |