카테고리 없음2011. 10. 4. 17:38

public class test_2
{
    public static Map PutData(String _id, int _level, String _requisite) throws Exception
        {
            Map<String, Object> items = new HashMap<String, Object>();


            items.put("id", _id);
            items.put("level", _level);
            items.put("requisite", _requisite);

            return items;
        }

        public static List<Map> Input(List<Map> data) throws Exception
        {
            data.add(PutData("10001", 1, "0"));
            data.add(PutData("10002", 1, "10001"));
            data.add(PutData("10003", 2, "10002"));
            data.add(PutData("10004", 3, "0"));
            data.add(PutData("10005", 3, "10003"));
            data.add(PutData("10006", 4, "10005"));

            return data;
        }
    public static void main(String[] args) throws Exception
    {
        List<Map> data = new ArrayList<Map>();
        List<String> quest = new ArrayList<String>();

        Input(data);

        // 입력은 구현하지 않았습니다.
        String input ="3, 10001:y, 10002:y, 10003:y";
        
        String[] list = input.replace(" ","").split(","); // 공백 제거
        int level = Integer.parseInt(list[0]); // 레벨 저장

        for(int i =1, size = list.length; i < size; i++) // 수행중이거나 완료한 퀘스트를 quest List에 저장
            quest.add(list[i]);

        List<String> output = new ArrayList<String>(); // 출력

        Map temp_data; // 임시데이터

        for(int i = 0, size = data.size() -1; i <= size; i++)
        {
            temp_data = data.get(i); // 임시값 입력
            if((Integer)temp_data.get("level") <= level) // 본인 레벨보다 높은 레벨의 퀘스트를 받을 수 없음
            {
                // 수행중이거나 완료한 퀘스트 ID값을 검색
                if(!quest.contains(temp_data.get("id")+":y") && !quest.contains(temp_data.get("id")+":n"))
                {
                    // 선행퀘스트가 없거나 완료된경우 true
                    if("0".equals(temp_data.get("requisite")) || quest.contains(temp_data.get("requisite")+":y"))
                    {
                        output.add((String)temp_data.get("id"));
                    }
                }
            }
        }

        System.out.print(output.get(0));
        for(int i =1, size = output.size(); i < size; i++)
        {
            System.out.print(", " + output.get(i));
        }
    }
}

Posted by 달빛낙엽