프로그래밍/Java

DAY001_자바 낱말 맞추기

guitarhero 2013. 7. 11. 10:57
728x90

자바 개발자는 자바를 잘해야된다며 시작한 남궁성님의 까페에서 자바 1000제를 풀기 시작


첫째날 낱말 섞어서 원래랑 비교하기 


package Day001;


import java.util.HashSet;

import java.util.Iterator;


class WordScrambleEx { 

    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 seed = (int) (Math.random()*strArr.length); //난수 생성 같은 숫자가 몇번 나올 수 있으니 주의

    System.out.println("seed : " + seed + " strArr : " + strArr.length);

    return strArr[seed];

    } 

    

    public static String getScrambledWord(String str) { 

    String result = "";

    int seed = 0;

    HashSet<Integer> source = new HashSet<Integer>(); //중복숫자를 허용하지 않기 위해서 

    while(true){

    seed = (int) (Math.random()*str.length()); //난수를 생성해서 HashSet에 담는다.

    source.add(seed);

    if(source.size() == str.length()) break; //HashSet의 size와 스트링의 길이가 같으면 재료 완성

    }

   

    System.out.println(source.iterator());

    Iterator<Integer> itr = source.iterator(); //Iterator 사용법에 따른 난 이것도 헷갈렸다 ㅋㅋ

    while(itr.hasNext()){

    result += str.charAt(itr.next());

    }

        

    return result;

    } // scramble(String str) 

}



이렇게 작성해 보았다. 결과는 뭐 나오는 거 같은데 정답을 맞춰봐야지 ㅋㅋㅋ

결과는 위와 같이 나왔다. 앞으로 더 잘해 봐야지 ㅋㅋ






728x90