제5회 대학생 프로그래밍 경시대회 문제 B KTX 2014-05-16 ProgrammingAlgorithm Algorithm, ICPC, Java, Programming 소스코드123456789101112131415161718192021222324252627282930313233343536373839404142434445public class KTX { public static void main(String[] args) { //int[] order = {3, 2, 1}; int[] order = {2, 4, 5, 3, 1}; System.out.println(isOrder(order)); } public static boolean isOrder(int[] order) { int route1 = -1, route2 = -1; // 두 우회로에 있는 열차의 등급(현재는 비어있다.) int grade = 1; // 현재 도착해야 하는 열차의 등급 for(int i = 0; i < order.length; i++) { // 선두 열차가 현재 최고 등급이라면 지나간다. if(order[i] == grade) { grade++; } // 처음 우회로에 현재 최고 등급의 열차가 있으면 지나간다. else if(route1 == grade) { route1 = -1; grade++; } // 다음 우회로에 현재 최고 등급의 열차가 있으면 지나간다. else if(route2 == grade) { route2 = -1; grade++; } // 처음 우회로가 비어있으면 거기로 보낸다. else if(route1 == -1) { route1 = order[i]; } // 두번째 우회로가 비어있으면 거기로 보낸다. else if(route2 == -1) { route2 = order[i]; } // 위의 모든 경우가 아니라면 순서대로 보내는 것은 불가능이다. else { return false; } } // 모든 열차가 지나갔다면 순서대로 보내는 것이 성공했다. return true; }} 주절주절이 문제도 너무 옛날에 풀어서 정확히 기억이 안난다. 시간나면 다시 풀어보아야겠다. Newer 제5회 대학생 프로그래밍 경시대회 문제 A 장보기 Older Eclipse RCP Tutorial 1