JAVA를 JAVA라

[JAVA] 타노스의 배열 제거 본문

JAVA/풀어봅시다 (eclipse)

[JAVA] 타노스의 배열 제거

샛별KIM 2021. 5. 26. 16:04

랜덤한 배열을 만들고 그 배열에서 절반의 숫자를 없애버린 후 출력한다

 

/*
 * 배열을 0~5로 두고,
 * 랜덤 0~5를 뽑아서 뽑힌 숫자의 배열 자리를 0으로..
 * 0자리는 출력 안하게! 
 * 또는 절반짜리 배열을 만들어
 * 뽑힌 숫자를 그 배열에 넣기 
 */

import java.util.Arrays;
import java.util.Scanner;

public class Thanos {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int ran = 0;

///////////////////////////////////////////////////
// System.out.println("숫자를 입력하세요. ");
// int[] people = new int[sc.nextInt()];
// for (int i = 0; i < people.length; i++) {
// people[i] = (int) (Math.random() * 4 + 1);
// }
//////////////////////////////////////////////////숫자 입력받아 그 크기만큼 배열 랜덤생성

		int[] people = { 2, 3, 1, 6, 5, 7 };
		int[] half = new int[people.length / 2];

		System.out.println(Arrays.toString(people));

		///// 1번방식 == 랜덤한 index값을 뽑아 이미 뽑힌 index자리에는 0을 넣어준다.
		for (int i = 0; i < half.length; i++) {
			int cnt = 0;
			ran = (int) (Math.random() * people.length); // 0~5까지의 랜덤 index값

			if (people[ran] != 0) {
				half[i] = people[ran];
				people[ran] = 0; // 이미 뽑힌 숫자에는 0을 넣어준다.
			} else {
				i--; // input[ran]값이 0이라면, 즉 이미 뽑혔던 숫자라면 다시 돌기
			}

/////////////////////////////////////////////2번방식
// do {
// if (people[ran] == half[cnt]) {
// i--;
// break;
// } else {
// half[i] = people[ran];
// }
// cnt++;
// } while(cnt < i);

///////////////////////////////////////////////중복값이면 i 다시 돌리기
		}

		System.out.println(Arrays.toString(half));
		sc.close();
	}
}
Comments