반응형
여러 사람들이 모여서 아이스브래이킹을 할때 나이로 업앤 다운 게임을 하신 경험이 있을 것입니다.
아래 문제가 이와 같은 규칙으로 이뤄진 문제입니다.
랜덤함수를 이용해 컴퓨터가 1~100사이의 임의의 정수를 정하고, 사용자가 입력한 정수와 비교해 입력한 수가 높다면 down, 입력한 숫자가 작다면 up을 출력하시오. 정답을 맞췄다면, 컴퓨터가 정한 수와 답을 입력한 횟수도 같이 출력하시오. |
While문, if문, Math.random()을 사용해서 문제를 해결했습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
import java.util.Scanner;
public class blog{
public static void main(String[] args) {
int cnt=1;
int sum=0;
int targetNumber = (int) (Math.random()*100+1);
while(true) {
Scanner sc = new Scanner(System.in);
System.out.printf("정수를 입력하시오");
int input = Integer.parseInt(sc.nextLine());
if(input<targetNumber) {
System.out.printf("UP\n");
sum+=cnt;
continue;
}else if(input>targetNumber) {
System.out.printf("DOWN\n");
sum+=cnt;
continue;
}else if(input==targetNumber){
sum+=cnt;
System.out.printf("정답:%d, %d번 입력하셨습니다", targetNumber,sum); break;
}
}
}
}
|
cs |
먼저 컴퓨터가 정할 임의의 숫자를 위해 Math.random()을 사용
1. Math.random()은 0 이상 1.0 미먼의 실수를 정해주므로 100을 곱하고 int형으로 형변환을 취해줍니다
2. 0이 나오는 경우를 제외하기 위해서 +1을 해서 0이 나오지 않게 설정합니다
그리고 조건문에 맞춰서 각 숫자를 입력했을때 반복 실행하게 만들면 문제가 해결됩니다.
반복 실행 될 때마다 변수 선언한 sum에 cnt를 누적해서 입력한 횟수까지 알 수 있게 만들어 줍니다.
반응형
'코딩공부 > JAVA' 카테고리의 다른 글
JAVA #5_2 : 구글 입사 문제; 1~10000 사이에 8의 개수를 구하시오 (0) | 2022.05.20 |
---|---|
JAVA #5_1 : 구글 입사 문제; 1~10000 사이에 8의 개수를 구하시오 (0) | 2022.05.19 |
JAVA #3 : Format 명령어를 이용한 숫자의 자릿수 출력하기 (0) | 2022.05.17 |
JAVA #2 : Switch문을 이용한 학점 계산기 (0) | 2022.05.13 |
코딩 문제 사이트 추천 (0) | 2022.05.12 |