본문 바로가기

국비교육/국비교육 복습

Day06_random_Test07 : 업다운 게임 (random의 활용) (★)

(Q) 업다운 게임
숫자를 하나 정해두고 랜덤으로 1에서 1000 사이의 숫자를 하나 정합니다
사용자가 범위 내에서 숫자를 입력합니다
프로그램은 사용자가 입력한 값과 정답을 비교해서 업, 다운, 정답 세 개중 하나를 알려줍니다.
- 업은 정답이 입력값보다 크다는 의미입니다.
- 다운은 정답이 입력값보다 작다는 의미입니다.
- 정답은 정답과 입력값이 같은 경우를 말하며, 게임이 종료되어야 합니다.
업다운 게임을 구현하시고 정답을 맞추면 몇번 만에 맞췄는지 계산해서 출력해주세요.

 

 

package day06;

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

public class Day06_random_Test07 {

	public static void main(String[] args) {
		
		Random r = new Random();
		int selectedNum = r.nextInt(1000) + 1;
		
		Scanner sc = new Scanner(System.in);
		int count = 0;
		while(true) {
			
			System.out.print("입력(1 ~ 1000) : ");
			int answer = sc.nextInt();
			
			if(selectedNum > answer) {
				count ++;
				System.out.println("다운");
			}
			else if(selectedNum == answer) {
				count ++;
				System.out.println("정답");
				break;
			}
			else {
				count ++;
				System.out.println("업");
			}
		}
		
		System.out.println("정답");
		System.out.println("시도 횟수 : " + count);
	}
}

 

- 정상적으로 작동하는지 확인하기 위해서는 random의 값을 알아야 하므로 직접 출력을 해봐야 한다

- 정답에 상관없이 답을 입력하는 행위 자체를 시도 횟수 1회로 본다

 

 

 

** 이진 탐색 (Binary Search)