본문 바로가기

JAVA/Java1000제

자바/Java Word Scramble 1 - 단어 맞추기

자바/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