https://programmers.co.kr/learn/courses/30/lessons/43162?language=java
1. 노드의 방문 여부 배열을 2차원으로 할지 1차원으로 할지 고민했다.
-> 2차원으로 했기 때문에 check[i][j]= false & check[j][i]=false & computer[i][j]=1 세 조건이 다 만족하는 경우만 dfs를 돌려야했다.
* dfs함수가 한번 돌면서 연결되어 있는 정점들을 모두 true로 바꿔주기 때문에
dfs가 호출될때 answer을 증가시켜주면 된다.
2. dfs 함수의 매개변수로 n은 굳이 안보내고, computers.length로 사용하면 될 것 같다.
3. 처음에 dfs함수 안에서 for문 돌릴 때 양방향이라서 생각해서 now부터 시작했는데,
양방향이 아니라 단방향이므로 0부터 찾아주도록 바꿨다.
아래는 내가 제출한 코드
나랑 비슷하게 풀었지만 check배열 1차원으로 해서 풀었다.
나보다 더 깔끔하다.
아래 코드 다시 복습해봐야지!
잘 푼 사람들 코드 보고 습득하는거 짜릿해 🤭
'Algorithm Study' 카테고리의 다른 글
[프로그래머스] 소수찾기 (level.2) / JAVA/ 완전탐색 (0) | 2022.05.25 |
---|---|
[프로그래머스] 체육복 / java, Greedy (0) | 2022.05.23 |
[프로그래머스] 약수의 개수와 덧셈 (0) | 2022.05.21 |
[프로그래머스] 정수 제곱근 판별 / java (0) | 2022.05.19 |
[프로그래머스] K진수에서 소수 개수 구하기 / java (0) | 2022.05.19 |