정구리의 우주정복
[Java 예제 1000제] Word Scramble 1- 단어 맞추기 본문
https://cafe.naver.com/javachobostudy
문제
[문제1] 다음의 예제를 완성하시오.
getAnswer(String[] strArr)는 배열strArr의 요소중의 하나를 임의로 골라서 반환한다.(Math.random()사용)
getScrambledWord(String str)는 주어진 문자열 str의 각 문자의 순서를 뒤섞은 다음, 새로운 문자열로 반환한다.
(Math.random()사용)
class WordScrambleEx1 {
public static void main(String[] args) {
String[] strArr = { "CHANGE", "LOVE", "HOPE", "VIEW"};
String answer = getAnswer(strArr);
String question = getScrambledWord(answer);
System.out.println("Question:"+question);
System.out.println("Answer:"+answer);
} // main
public static String getAnswer(String[] strArr) {
// 내용을 완성하세요.
}
public static String getScrambledWord(String str) {
// 내용을 완성하세요.
} // scramble(String str)
}
[실행결과]
Question:HEPO
Answer:HOPE
나의 풀이
class WordScrambleEx1 {
public static void main(String[] args) {
String[] strArr = { "CHANGE", "LOVE", "HOPE", "VIEW"};
String answer = getAnswer(strArr);
String question = getScrambledWord(answer);
System.out.println("Question:"+question);
System.out.println("Answer:"+answer);
} // main
public static String getAnswer(String[] strArr) {
int num = (int)(Math.random()*4);
return strArr[num];
}
public static String getScrambledWord(String str) {
char[] arr = new char[str.length()];
for(int i=0; i<str.length();i++){
arr[i] = str.charAt(i);
}
/*
char[] arr = str.toCharArray();
*/
int randNum1,randNum2;
char a,b;
for(int i=0; i<arr.length;i++){
randNum1 = (int)(Math.random()*arr.length);
a = arr[randNum1];
randNum2 = (int)(Math.random()*arr.length);
b = arr[randNum2];
arr[randNum1] = b;
arr[randNum2] = a;
}
return new String(arr);
getAnswer 은 Math.random 에 4를 곱해 (strArr의 길이가 4이기 때문) strArr 중 랜덤으로 골라지게 만들었다
getScrambleWord 는 우선 단어를 배열로 바꿔주고 (toCharArray() 를 사용하면 쉽게 바꿀 수 있다고 한다
랜덤하게 두자리씩 바꾸고 바꾸고 해줬다
Math.random 범위 정하는 방법
(int)Math.random()*(최대값-최소값+1)+최소값
정답
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);
'JAVA > STUDY' 카테고리의 다른 글
[Java 예제 1000제] Word Scramble 3 - 단어 맞추기 (0) | 2022.02.01 |
---|---|
[Java 예제 1000제] Word Scramble 2- 단어 맞추기 (0) | 2022.02.01 |
[Java] 변수에 대해 (0) | 2022.01.31 |
[Java] 구분구적법을 이용해 원의 넓이 구하기 (0) | 2018.11.09 |
[Java] 파이 값 구하기 (0) | 2018.11.08 |