FIF's 코딩팩토리

자바 기초 NCS교육과정(32)-랜덤함수 문제풀이 본문

Back-End/국비 NCS교과과정

자바 기초 NCS교육과정(32)-랜덤함수 문제풀이

FIF 2019. 7. 31. 20:57
반응형

이번 시간은 문제풀이 시간 입니다.

코드를 바로 보지 마시고, 충분한 시간을 가지고 고민해 보세요!

생각하는 시간이 많을수록 실력은 향상됩니다.

 

 

 

 

Question 1) Prob001_random.java

 

[클래스 정의]
  클래스명 : UserUnique
  +UserUnique()
  +makeArray() : int[ ]
  +printUniqueNumber(array:int[]) : void
   
  [문제]
  1~20 사이의 난수 10개를 발생시켜 배열에 저장한 후에 리턴하는 
  makeArray() 메서드와 생성된 배열에서 중복된 숫자를 제거하고 
  유일한 숫자만 출력하는 printUniqueNumber() 메서드를 각각 구현하시오.
   
  [프로그램 실행결과]
  << 발생된 난수 >>
   15 7  4  4  8  7  1  11  17  5 
   << 중복되지 않은 유일한 숫자 >>
   15 8  1  11  17  5

public class Prob001_random {

	public static void main(String[] args) {
          
	}// end main()

}// end class
public class UserUnique {
	public UserUnique() {

	}

	public int[] makeArray() {
		// 난수값를 발생시킨후 반환하는 프로그램을 구현하시오.
		
	}// end makeArray()

	public void printUniqueNumber(int[] array) {
		// array배열에서 중복되지 않은 유일한 숫자만을 출력하는 프로그램을 구현하시오.
	

	}// end printUniqueNumber()

}// end class

 

 

 

 

 

 

 

 

 

 

 

Answer 1) Prob001_random.java

public class Prob001_random {
	public static void main(String[] args) {
		UserUnique uq = new UserUnique();
		int[] num = uq.makeArray();
		System.out.println("<< 발생된 난수 >>");
		for (int i = 0; i < num.length; i++) {
			System.out.print(num[i] + " ");
		}
		System.out.println("\n<< 중복되지 않은 유일한 숫자 >>");
		uq.printUniqueNumber(num);
	}// end main()

}// end clss
public class UserUnique {
	public UserUnique() {

	}

	public int[] makeArray() {
		// 난수값를 발생시킨후 반환하는 프로그램을 구현하시오.
		int[] arr = new int[10];
		Random ran = new Random();

		for (int i = 0; i < arr.length; i++)
			arr[i] = ran.nextInt(20) + 1;

		return arr;
	}// end makeArray()

	public void printUniqueNumber(int[] array) {
		// array배열에서 중복되지 않은 유일한 숫자만을 출력하는 프로그램을 구현하시오.
		boolean chk = false;
		for (int i = 0; i < array.length; i++) {
			chk = false;
			for (int j = 0; j < array.length; j++) {
				if (i != j && array[i] == array[j]) {
					chk = true;
					break;
				}
			} // end for j

			if (chk == false)
				System.out.printf("%5d", array[i]);
		} // end for i

	}// end printUniqueNumber()

}// end class

출력결과

 

Question 2) Prob002_random.java

 

 [UserPrime 클래스 정의]   
  클래스명 : UserPrime
  + UserPrime()
  + makeArray() : int[] 
  + primeNumber(array : int[] ) : void
   
  [문제]
  2~20 사이의 난수 10개를 발생시켜 배열에 저장한 후에 리턴하는 
  makeArray() 메서드와 배열에서 소수를 구하여 출력하는 primeNumber() 메서드를 각각 구현하시오.
  [출력결과]
<< 발생된 난수 >>
  15 7  4  4  8  7  2  11  17  5 
<< 소수 숫자 >>
  7 7 2 11 17 5

public class Prob002_random {

	public static void main(String[] args) {
		
	}//end main()
}// end class
public class UserPrime {
	public UserPrime() {

	}

	public int[] makeArray() {
		// 난수값를 발생시킨후 반환하는 프로그램을 구현하시오.
	
	}// end makeArray()

	public  void primeNumber(int[] array) {
		// array배열에서 소수만 출력하는 프로그램을 구현하시오.
	

	}// end primeNumber()

}// end class

 

 

 

 

 

 

 

 

 

Answer 2) Prob002_random.java

public class Prob002_random {

	public static void main(String[] args) {
		UserPrime uu=new UserPrime();
		int[] data=uu.makeArray();		
		System.out.println("<< 발생된 난수 >>");
		for(int arr : data)
			System.out.printf("%4d",arr);
		System.out.println("\n<< 소수 숫자 >>");
		uu.primeNumber(data);
	}// end main( )

}// end class
public class UserPrime {
	public UserPrime() {

	}

	public int[] makeArray() {
		// 난수값를 발생시킨후 반환하는 프로그램을 구현하시오.
		int[] arr = new int[10];
		Random ran = new Random();

		for (int i = 0; i < arr.length; i++)
			arr[i] = ran.nextInt(19) + 2;

		return arr;
	}// end makeArray()

	public  void primeNumber(int[] array) {
		// array배열에서 소수만 출력하는 프로그램을 구현하시오.
		int count = 0;
		for (int j = 0; j < array.length; j++) {

			for (int i = 2; i < array[j]; i++) {
				if (array[j] % i == 0)
					count++;
			}

			if (count == 0)
				System.out.printf("%4d", array[j]);
			count = 0;
		}

	}// end primeNumber()

}// end class

반응형
Comments