(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)
'국비교육 > 국비교육 복습' 카테고리의 다른 글
Day07_array_Test07 : 성적의 총합, 평균, 등수 구하기 (배열의 활용 - count) (★★) (0) | 2022.08.07 |
---|---|
Day06_random_Test09 : 확률 구현 (★) (0) | 2022.08.07 |
Day06_random_Test06 : 블루마블 무인도 탈출 (random의 활용) (0) | 2022.08.07 |
Day06_random_Test04 : 랜덤 구구단 문제 (3번 틀리면 게임 오버) (0) | 2022.08.07 |
Day06_random_Test03 : 랜덤 구구단 문제 출력 (random 활용) (0) | 2022.08.07 |