게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바 소스 해석좀 도와주세요 ㅜㅜㅜ
게시물ID : computer_22581짧은주소 복사하기
작성자 : 눈팅눈팅
추천 : 0
조회수 : 300회
댓글수 : 0개
등록시간 : 2011/11/03 19:11:26
import java.io.*;
public class Subway { 
  public static void main( String [] arg ) throws Exception {                //메인메소드 , 예외문 활용.(이것도 다시 ㅜ)
 
    int m = 10000; 
    int s,e;
    int i,j,k=0,min; 
    int [] v = new int[8];  
    int [] distance = new int[8]; 
    int [] via = new int[8]; 
    int [][] data = {    
      {0,1,m,m,m,m,m,m}, 
      {1,0,1,1,m,m,m,m}, 
      {m,1,0,m,1,m,m,m},  
      {m,1,m,0,m,1,m,m},   
      {m,m,1,m,0,1,m,1},  
      {m,m,m,1,1,0,1,m}, 
      {m,m,m,m,m,1,0,m},  
      {m,m,m,m,1,m,m,m}   
    };  
    BufferedReader br = new BufferedReader( new InputStreamReader( System.in ));      //BuggeredReader가 뭐하는거야 -_-알아보자...
    System.out.print(" 출발역을 입력하세욧! : ");  
    s = Integer.parseInt(br.readLine());   //니도 도대체 뭐하는거냐..?
    System.out.print(" 도착역을 입력하세욧! : "); 
    e =Integer.parseInt(br.readLine());                //니놈은 도대체 뭐야?
    for( j=0; j<8; j++ ) { 
      v[j] = 0;  
      distance[j] = m;
    }   
    
    distance[s-1] = 0; 
    for( i=0; i<8; i++ ) { 
      min = m;  
      for( j=0; j<8; j++ ) {  
        if( v[j] == 0 && distance[j] < min ) {   
          k = j; 
          min = distance[j];   
        } 
      } 
      v[k] = 1; 
      if(min==m) break;  
      
      for(j=0; j<8; j++) {   
        if(distance[j] > distance[k] + data[k][j]) {  
          distance[j] = distance[k] + data[k][j];     via[j]=k;  
        }  
      } 
    } 
    System.out.printf("\n %d에서 출발하여, %d로 가는 최단 거리는 %d입니다.\n", s, e, distance[e-1]);  
    int path[] = new int[8];  
    int path_cnt=0; 
    k=e-1; 
    while(true) { 
      path[path_cnt++]=k; 
      if(k==s-1)break; 
      k=via[k]; 
    }  
    System.out.print(" 경로는 : "); 
    for(i=path_cnt-1;i>=1;i--) { 
      System.out.printf("%d -> ",path[i]+1); 
    }  
    System.out.printf("%d입니다",path[i]+1); 
  }
}



이 소스 입니다.

s값을 받아서 k,j값을 지지고 볶아서 data 배열에 s값의 위치를 넣는것 까지는 해석했습니다
(틀린가요 ㅠㅜㅜ?)

근데 도착역값인 e값은 도대체 언제 data배열에서 정해주는겁니까?ㅜㅜㅜ

도저히 알수가 ㅜㅜㅜ
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호