반응형
🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
import java.util.*;
import java.io.*;
class Solution {
static int n, answer;
static int[][] computers;
static Queue<Integer> q = new LinkedList<>();
static boolean[] visited;
public int solution(int n, int[][] computers) {
// 멤버 변수 선언
this.n = n;
this.computers = computers;
visited = new boolean[n];
answer = 0;
// 방문하지 않은 각 점에 대해 BFS 수행
for(int i = 0 ; i < n ; i++) {
if(!visited[i]) {
bfs(i, n);
answer++;
}
}
return answer;
}
private static void bfs(int num, int n) {
visited[num] = true;
q.add(num);
while(!q.isEmpty()) {
int now = q.poll();
for(int i = 0 ; i < n ; i++) {
if(!visited[i] && computers[now][i] == 1) {
visited[i] = true;
q.add(i);
}
}
}
}
}
|
cs |
✅ 해결 아이디어
✔ BFS / DFS
🧩 필요 자료구조
- Queue<Integer> q : 다음에 방문할 정점을 저장해놓기 위한 BFS 수행용 큐
- boolean[] visited : 각 컴퓨터 방문 여부 판단용 일차원 boolean 배열
💬 느낀 점
이게 레벨3?라고 할 정도로 분명 어렵지 않고..... 그런데
나는 쉽게 풀지 못했고...
boolean 배열을 2차원 배열로 해보다가 장렬하게 실패하고ㅎㅎ
프로그래머스로 문제만 보면 쪼나보다,,,
이래서 백준이랑 프로그래머스 문제를 병행해서 풀어야하는갑다,,,
담엔 더 잘해보게따!!
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
[Java] 프로그래머스 DFS/BFS > 네트워크 자바
[Java] 프로그래머스 DFS/BFS > 네트워크
velog.io
프로그래머스 | 네트워크 (DFS & BFS) - java
DFS는 스택, BFS는 큐 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. pro
sedangdang.tistory.com
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 2] 연속 부분 수열 합의 개수 (JAVA) (0) | 2023.09.14 |
---|---|
[프로그래머스/Lv. 2] 게임 맵 최단거리 (JAVA) (0) | 2023.09.14 |
[프로그래머스/Lv. 2] 타겟 넘버 (JAVA) (0) | 2023.09.13 |
[프로그래머스/Lv. 2] 피로도 (JAVA) (0) | 2023.09.13 |
[프로그래머스/Lv. 2] 소수 찾기 (JAVA) (0) | 2023.09.13 |