99클럽 코테 스터디 Java 미들러 8일차 TIL - 촌수 계산 : 백준 2644 - DFS, BFS

2024. 11. 4. 17:28· 코딩테스트
목차
  1. 1. 오늘의 문제 - 촌수 계산 - 백준 : 2644번
  2. 2. 문제 풀이 전략
  3. 3. 풀이
  4. 4. 소감

1. 오늘의 문제 - 촌수 계산 - 백준 : 2644번

https://www.acmicpc.net/problem/2644

 

 

2. 문제 풀이 전략

DFS로 그래프 탐색을 하면 될 것 같고,

양방향 그래프이고,

사람들이 100명뿐이 안되니까 인접행렬 사용하면 될 것 같다.

 

3. 풀이

package io.conduktor.demos.dfsbfs.hanghaecote99.middler;

import java.io.*;
import java.util.StringTokenizer;

// 8. 촌수 계산 - 백준 : 2644 - DFS, BFS
public class ChonNumber8 {
    static int N;
    static int targetA;
    static int targetB;
    static int M;
    static int answer = 0;
    static int[][] adjMatrix;
    static int[] ch;

    static void dfs(int idx, int count) {
        ch[idx] = 1;

        if (idx == targetB) answer = count;

        for (int i = 1; i <= N; i++) {
            if (adjMatrix[idx][i] == 1 && ch[i] == 0) {
                dfs(i, count + 1);
            }
        }
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        N = Integer.parseInt(br.readLine());
        st = new StringTokenizer(br.readLine());
        targetA = Integer.parseInt(st.nextToken());
        targetB = Integer.parseInt(st.nextToken());
        M = Integer.parseInt(br.readLine());
        adjMatrix = new int[N+1][N+1];
        for (int i = 0; i < M; i++) {
            st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            adjMatrix[a][b] = 1;
            adjMatrix[b][a] = 1;
        }
        ch = new int[N+1];
        answer = -1;
        dfs(targetA, 0);

        bw.write(answer + "\n");
        bw.flush();
        bw.close();
        br.close();
    }
}

 

4. 소감

힘을 내자

 

'코딩테스트' 카테고리의 다른 글

특정 거리의 도시 찾기 - 백준 18352 - Java - 다익스트라  (0) 2024.11.28
이중 우선순위 큐 - Heap - 프로그래머스 - Java  (0) 2024.11.23
99클럽 코테 스터디 Java 미들러 7일차 TIL - 모음 사전 : 프로그래머스 (Level 2) - DFS  (0) 2024.11.03
99클럽 코테 스터디 Java 미들러 6일차 TIL - 나무 자르기 : 백준 2805번 - 이분탐색  (0) 2024.11.02
99클럽 코테 스터디 Java 5일차 TIL - 알고리즘 수업 - 너비 우선 탐색 1 : 백준 24444번 - BFS  (0) 2024.11.01
  1. 1. 오늘의 문제 - 촌수 계산 - 백준 : 2644번
  2. 2. 문제 풀이 전략
  3. 3. 풀이
  4. 4. 소감
'코딩테스트' 카테고리의 다른 글
  • 특정 거리의 도시 찾기 - 백준 18352 - Java - 다익스트라
  • 이중 우선순위 큐 - Heap - 프로그래머스 - Java
  • 99클럽 코테 스터디 Java 미들러 7일차 TIL - 모음 사전 : 프로그래머스 (Level 2) - DFS
  • 99클럽 코테 스터디 Java 미들러 6일차 TIL - 나무 자르기 : 백준 2805번 - 이분탐색
Griotold
Griotold
Griotold
Griotold's Olive Oil
Griotold
전체
오늘
어제
  • 분류 전체보기 (89)
    • 테스트 (4)
      • Spock (1)
      • Junit (3)
    • 디자인 패턴 (1)
    • 깃 (2)
    • 리팩토링 (4)
    • 항해플러스 백엔드 5기 (3)
    • 인프런 워밍업 클럽 스터디 2기 백엔드 (4)
    • 코딩테스트 (10)
    • 자바 심화 2기 (7)
    • 백엔드 면접 질문 (19)
    • 인프라 (17)
      • docker (5)
      • CI, CD (5)
      • Monitoring (6)
      • AWS (1)
    • 데이터베이스 (1)
      • Redis (1)
    • 메시지큐 (3)
      • rabbitMQ (0)
      • kafka (3)
    • MSA (7)
    • JPA (1)
    • Spring (5)
      • Spring AI (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

인기 글

태그

  • docker
  • 자바
  • 이분탐색
  • 백엔드
  • 티스토리챌린지
  • 항해99
  • CICD
  • DATABASE
  • 개발자취업
  • github
  • 코딩테스트준비
  • grafana
  • Spring
  • java
  • 프로그래머스
  • JPA
  • githubactions
  • prometheus
  • 읽기좋은코드
  • backend
  • 백준
  • 99클럽
  • micrometer
  • junit5
  • actuator
  • MSA
  • 배포
  • TIL
  • 오블완
  • 리팩터링

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Griotold
99클럽 코테 스터디 Java 미들러 8일차 TIL - 촌수 계산 : 백준 2644 - DFS, BFS
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.