[Java1000제] Word Scramble2

[Java 1000제] Word Scramble 단어 맞추기2

[Java1000제] Word Scramble에서 간단하게 배운것을 바탕으로해서 심화 문제를 풀어보겠습니다.

이전 문제에서는 문제와 답을 다 알려주었는데, 사용자가 답을 입력하고 답을 받는것을 해보겠습니다.

문제

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
39
40
41
42
43
44
45

class WordScrambleEx2 {
public static void main(String[] args) {
String[] strArr = { "CHANGE", "LOVE", "HOPE", "VIEW"};

String answer = getAnswer(strArr);
String question = getScrambledWord(answer);

while(true) {
System.out.println("Question :" + question);
System.out.print("Your answer is :");


// 1. 화면을 통해 사용자의 입력을 받는다.(Scanner클래스 사용)

// 2. 사용자가 q 또는 Q를 입력하면 프로그램을 종료한다.

// 3. 사용자가 정답을 맞출때까지 반복하다가

// 사용자가 정답을 맞추면, while문을 빠져나간다.

} // while

} // main

public static String getAnswer(String[] strArr) {
int idx = (int)(Math.random()*strArr.length);
return strArr[idx];
}

public static String getScrambledWord(String str) {
char[] chArr = str.toCharArray();

for(int i=0;i<str.length();i++) {
int idx = (int)(Math.random()*str.length());

char tmp = chArr[i];
chArr[i] = chArr[idx];
chArr[idx] = tmp;
}

return new String(chArr);
} // scramble(String str)
}

문제 해답

저는 정답을 아래와 같이 작성하였습니다! main 함수만 수정하였습니다.

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
public static void main(String[] args) {
String[] strArr = { "CHANGE", "LOVE", "HOPE", "VIEW"};

String answer = getAnswer(strArr);
String question = getScrambledWord(answer);

while(true) {
System.out.println("Question :" + question);
System.out.print("Your answer is :");

Scanner sc = new Scanner(System.in);

String _answer;

// 1. 화면을 통해 사용자의 입력을 받는다.(Scanner클래스 사용)
_answer = sc.next().toUpperCase();

// 사용자가 정답을 맞추면, while문을 빠져나간다.
if(answer.equals( _answer)) {
System.out.println("정답은 "+ _answer +"!!!");
System.out.println("정답 입니다!! BYE~BYE~");
sc.close(); //입력 프로그램 종료
break;
// 2. 사용자가 q 또는 Q를 입력하면 프로그램을 종료한다.
}else if(_answer.equals("Q")){
sc.close(); //입력 프로그램 종료
System.out.println("Q를 입력하여 종료됩니다. GG");
break;
// 3. 사용자가 정답을 맞출때까지 반복하다가
}else {
System.out.println( _answer +" 정답이 아닙니다. 다시 시도해보세요.");
}
} // while
} // main

해결하였습니다. 더욱 좋은 방법이 있다면 댓글로 알려주시길 바랍니다!

via GIPHY

Reference

Share