시간 & 메모리 제한
문제
입력 & 출력
구현을 이용한 문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Back_5567 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int M = Integer.parseInt(br.readLine());
StringTokenizer st;
//친구간의 관계 표시를 위한 배열
boolean [][] arr = new boolean[N+1][N+1];
//누가 오는 동기 인지 표시 하기 위한 배열
boolean[] visited = new boolean[N+1];
int ans=0;
for (int i = 0; i < M; i++) {
st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
arr[a][b] = true;
arr[b][a] = true;
}
for (int i = 2; i <=N; i++) {
//친구인 경우
if(arr[1][i]== true) {
if(!visited[i]) {
ans ++;
visited[i]=true;
}
// 친구의 친구인 경우 찾기
for (int j = 2; j <=N; j++) {
if(arr[i][j]==true && !visited[j]) {
ans ++;
visited[j]=true;
}
}
}
}
System.out.println(ans);
}
}
- 이 문제를 읽었을 때, 있는 그대로 풀면 될꺼 같다는 생각이 들었습니다.
- 물론 이 문제를 bfs로 풀 수 있다고 생각 했지만, 가장 먼저 든 생각으로 문제를 풀었습니다.
- for문을 통해서 1차적으로 나와 친구인 관계를 찾았고, 그 친구고 아직 방문하지 않은 친구이면, 방문 처리 및 카운트를 해줬습니다.
- 친구에 값을 아는 상태에서 친구의 친구를 찾기 위해서 for문을 한번 더 돌렸습니다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_2210 숫자판 점프(자바) / DFS + 백 트래킹 (0) | 2021.05.14 |
---|---|
백준_1309 동물원(자바) / DP (0) | 2021.05.13 |
백준_1965 상자넣기(자바) / 최장 증가 수열(LIS) (0) | 2021.05.11 |
백준_9465 스티커(자바) / DP (0) | 2021.05.10 |
백준_1890 점프(자바) / DP (0) | 2021.05.08 |