yeny_lab

모각코_6회차

2024. 2. 19. 01:00·기타
728x90

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

1976번: 여행 가자

동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인

www.acmicpc.net

 
 
여행 가자... 입니다. 결국 그 경로들이 이어져 있으면 되는 문제라 BFS를 처음에 떠올렸다. 근데 빠르게 플로이드 와샬로 풀었다. 제출하고 다른 사람들 코드 보니까 Union-Find 로도 많이 풀었다. 다시 여러방법으로 해봐도 좋을 문제일듯!
 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static int N, M;
    public static int[][] map;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        N = Integer.parseInt(br.readLine());
        M = Integer.parseInt(br.readLine());
        StringTokenizer st;
        map = new int[N + 1][N + 1];
        for (int i = 1; i <= N; i++) {
            st = new StringTokenizer(br.readLine());
            for (int j = 1; j <= N; j++) {
                map[i][j] = Integer.parseInt(st.nextToken());
                if (i == j) {
                    map[i][j] = 1; continue;
                }
                if (map[i][j] == 0) {
                    map[i][j] = Integer.MAX_VALUE;
                }
            }
        }

        for (int n = 1; n <= N; n++) {
            for (int i = 1; i <= N; i++) {
                for (int j = 1; j <= N; j++) {
                    if (map[i][n] == Integer.MAX_VALUE || map[n][j] == Integer.MAX_VALUE) continue;
                    if (map[i][j] > map[i][n] + map[n][j])
                        map[i][j] = map[i][n] + map[n][j];
                }
            }
        }

        String[] path = br.readLine().split(" ");
        for(int i = 0; i < M - 1; i++) {
            int startCity = Integer.parseInt(path[i]);
            int endCity = Integer.parseInt(path[i + 1]);
            if (map[startCity][endCity] == Integer.MAX_VALUE) {
                System.out.println("NO");
                return;
            }
        }
        System.out.println("YES");
    }
}
728x90

'기타' 카테고리의 다른 글

[혼공컴운] 6주차_미션  (0) 2024.02.18
모각코_5회차  (1) 2024.02.15
모각코_4회차  (2) 2024.02.14
[혼공컴운] 5주차_미션  (0) 2024.02.04
[혼공컴운] 4주차_미션  (0) 2024.01.28
'기타' 카테고리의 다른 글
  • [혼공컴운] 6주차_미션
  • 모각코_5회차
  • 모각코_4회차
  • [혼공컴운] 5주차_미션
히어로맛쿠키
히어로맛쿠키
  • 히어로맛쿠키
    yeny_lab
    히어로맛쿠키
  • 전체
    오늘
    어제
    • 분류 전체보기 (389)
      • 미분류글 (32)
        • ㅇ (2)
      • JAVA (84)
        • Effective Java (1)
        • Application (21)
      • 컴퓨터구조 & OS (28)
      • 자료구조 + 알고리즘 (43)
      • Database (12)
      • 컴파일러 (10)
      • 수학 (33)
        • 미분방정식 (12)
      • 데이터분석과 머신러닝 (38)
      • 기타 (59)
      • yyeeennyy (25)
  • 공지사항

    • ^o^/♡
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
히어로맛쿠키
모각코_6회차
상단으로

티스토리툴바