Java 배열 심화

402호 전체 학생들 중 사용자가 입력한 숫자만큼 랜덤으로 학생을 뽑는 프로그램을 만들어주세요.

    //사용자가 입력한 숫자만큼 뽑음 하지만 중복되지 않게 뽑아야함
	
	String[] students ={"강나영", "강동환", "강태영", "곽지훈", "김서윤", "김영훈", "김진석", "김충신", "박슬기", 
			           "박채린", "손영태", "손영흔", "안정연", "이선우", "이수보", "이주홍", "이중호", "임현정",
			           "장유진", "정신애", "조수경", "조하영", "조혜민", "허민정", "박지은"};
	
	
	Scanner sc = new Scanner(System.in);
	System.out.println("숫자를 입력하시오 >");
	int num = Integer.parseInt(sc.nextLine());
	   
	   String[] pick = new String[count]; //뽑은 사람을 저장할 배열
	   int pickCount = 0; 
          //현재 뽑은 사람 수(새야지 언제까지 뽑을지 알수 있기때문에 변수를 만든것)
          
	   do{
	      int random = (int)(Math.random() * students.length);
          //랜덤값과 원래 뽑힌 사람을 비교해야함
	      
	      boolean flag = true;//중복의 여부를 확인 하기 위한 변수
          
	      for(int i = 0; i < pick.length; i++){
	        if(students[random].equals(pick[i]){
          //랜덤으로 방금 뽑은 사람과 이미 뽑인 사람과 비교를해서 같으면 추가를 하면 안됨(중복)
	          flag = false;//랜덤으로 뽑힌 사람과 이미뽑힌 사람이 같으면 flag를 false로 만듬
	      }
	        if(flag){//변수가 그대로 내려왔으면 중복이 안된것
	          pick[pickCount++] = students[random]; 
          // 그대로 내려왔으면 뽑은사람 배열에 랜덤으로 뽑인 사람이 들어오고 뽑은사람을 카운트 해준것
	      }
	    }while(pickCount < count); 뽑은값/입력한값
	   
	   System.out.println(Arrays.toString(pick));
       
       

거스름돈에 동전의 단위마다 몇개의 동전이 필요한지 출력해주세요

	거스름돈: 2860원
	500원:5개
	100원: 3개
	50원: 1개
	10원: 1개

	/* count = money / coin[0];
	 * money = money % coin[0];
	 * 
	 * count = money / coin[1];
	 * money = money % coin[1];
	 * 
	 * count = money / coin[2];
	 * money = money % coin[2];
	 * 
	 * count = money / coin[3];
	 * money = money % coin[3];
         //이런 식으로 반복 되는 형태
     
        int money = (int)(Math.random() * 500) * 10;
	int[] coin = {500,100,50,10};
	System.out.println("거스름돈: "+ money);
	
	for(int i = 0; i < coin.length; i++){
		int count = money / coin[i];
		money %= coin[i];
		System.out.println(coin[i]+"원 : "+count+"개");
	}

1~5의 숫자가 발생된 횟수만큼 *을 사용해 그래프를 그려주세요

	  1:***3 //일단 숫자부터 세야댐
	  2:****4
	  3:**2
	  4:*****5
	  5:******6
	  
	
	int[] arr = new int[20];
	for(int i=0;i<arr.length; i++){
		arr[i] = (int)(Math.random() * 5)+1;
	}
	System.out.println(Arrays.toString(arr));
	
	int[] count = new int[5];
	for(int i=0; i < arr.length; i++){
		count[arr[i] - 1]++; //각 숫자가 발생되는 수를 새는것(인덱스 값을 구하는 것이라 -1)
	}   //카운트 숫자만큼 별을 찍으면댐
	for(int i = 0; i < count.length; i++){
		System.out.print(i + 1 + " : ");
		
	   for(int j = 0; j < count[i]; j++){
		   System.out.print("*");
	}
	System.out.println(" "+count[i]);
}

좋은 웹페이지 즐겨찾기