2013년 5월 27일 월요일

Programming Challenges: Jolly Jumpers

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.StringTokenizer;

public class AnswerExercise9 {

  /**
  * @param args
  */
 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  List<Integer> g_list = new ArrayList<Integer>();
 
  while(sc.hasNextLine()){

    String inputLine = sc.nextLine();
    StringTokenizer st = new StringTokenizer(inputLine);
    int n = Integer.parseInt(st.nextToken()); //수열에 포함된 정수의 갯수(1<=n<=3000)
    int bfr_val = 0;
    int aft_val = 0;
    int gap = 0;
    boolean isJolly = true;
   
    //수열의 첫번째 값
    bfr_val = Integer.parseInt(st.nextToken());

    if(!g_list.isEmpty()) g_list.clear();
    while(st.hasMoreTokens()){
      aft_val = Integer.parseInt(st.nextToken());
      gap = Math.abs(aft_val-bfr_val); //인접한 두 수의 차의 절대값
      //gap이 범위를 벗어나거나 같은 gap이 하나라도 있을 경우 break;
      if(gap<1 || gap>(n-1) || g_list.contains(gap)){
        isJolly = false;
        break;
      }
      g_list.add(gap);
      bfr_val = aft_val;
    }
    if(isJolly) System.out.println("Jolly");
    else System.out.println("Not Jolly");
  }
 }
}

댓글 없음 :

댓글 쓰기