자바/Java Word Scramble 1 - 단어 맞추기
문제)
워드 스크램블(word scramble)은 단어의 철자(spelling)을 섞어놓고 원래 단어를 맞추는 게임입니다. 이 게임을 만들어가는 과정을 단계적으로 완성해나가는 것이 문제입니다.
Java1000제에 들어갈 문제이며, Java1000제에서는 이러한 형식으로 처음부터 쉽게 단계적으로 점점 기능을 추가하고 완성해 가는 방식으로 구성할 예정입니다.
풀어보시고,... 좋은 의견이나 지적 언제나 환영합니다. *^^*
[문제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 [참고]Math.random()을 사용하기 때문에 위의 실행결과와 다를 수 있습니다.
답안 입니다.
답안)
package arabiannight.tistory.com.java.test; class WordScrambleEx2 { 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 idx = (int)(Math.random() * strArr.length); return strArr[idx]; } public static String getScrambledWord(String str) { // String -> char[] char[] chArr = str.toCharArray(); // Math.random()을 이용한 철자섞기 for(int i=0; i < str.length() * 2; i++) { int idx = (int)(Math.random() * str.length()); char tmp = chArr[0]; chArr[0] = chArr[idx]; chArr[idx] = tmp; } return new String(chArr); } // scramble(String str) }
실행결과 :
Question :IVEW Answer :VIEW
출처 : 자바 초보스터디