타노스

조혜진·2022년 4월 21일
0

java 코딩테스트

목록 보기
2/7

타노스는 프로그램의 균형을 위해서는 리스트의 원소 절반을 무작위로 삭제해야 한다고 믿고 있다.
타노스가 손가락을 튕겼을 때(프로그램을 실행했을 때) 입력된 리스트에서
절반의 원소를 무작위로 삭제하여 리턴하는 인피니티 건틀렛 프로그램을 작성하시오.
(무작위 삭제이므로 입력값이 같아도 출력값이 매번 달라야 합니다)

입력 예시
[2, 3, 1, 6, 5, 7]
출력 예시 1
[2, 5, 7]
출력 예시 2
[3, 6, 5]

참고: 리스트의 원소가 홀수개일 경우 절반의 확률로 절반보다 많은 원소가 삭제되거나 절반보다 적은 원소가 삭제되어야 합니다.
(만약 리스트의 원소가 7개라면 절반의 확률로 3개 또는 4개의 원소가 삭제됨)

코드

package project4;

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;


public class Thanos {
	  public static void main(String[] args) {
	        int[] human = {2,3,1,6,5,7};

	        ArrayList<Integer> start = new ArrayList<Integer>();
	        
	  	        for(int i = 0; i < human.length; i++) {
	            start.add(human[i]);
	        }

	        ArrayList<Integer> finish = infinity(start);

	        for(int a = 0; a < finish.size(); a++) {
	            System.out.print(finish.get(a)+" ");
	        }
	    }

	    public static ArrayList<Integer> infinity(ArrayList<Integer> input) {
	        Random random = new Random();
	        int size = input.size();
	        for(int i = 0; i < size / 2; i++) {
	            input.remove(random.nextInt(input.size()));
	        }
	        return input;
	    }
	
}	

출력값

<출처 : https://codingdojang.com/scode/592?langby=java >

profile
안녕하세요

0개의 댓글