From 58882d26303ad0325e265246942b84df78317f5e Mon Sep 17 00:00:00 2001 From: mordiumaco Date: Tue, 14 Jul 2020 00:22:52 +0900 Subject: [PATCH 1/2] 1-7 skill tree --- .../Solution.java" | 60 +++++++++++++++++-- 1 file changed, 56 insertions(+), 4 deletions(-) diff --git "a/week1/7. \354\212\244\355\202\254 \355\212\270\353\246\254/Solution.java" "b/week1/7. \354\212\244\355\202\254 \355\212\270\353\246\254/Solution.java" index 49ec297..68dd438 100644 --- "a/week1/7. \354\212\244\355\202\254 \355\212\270\353\246\254/Solution.java" +++ "b/week1/7. \354\212\244\355\202\254 \355\212\270\353\246\254/Solution.java" @@ -1,10 +1,62 @@ +import java.util.Arrays; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.Queue; +import java.util.Set; + /* 7. 스킬 트리 https://programmers.co.kr/learn/courses/30/lessons/49993 */ -class Solution { - public int solution(String skill, String[] skill_trees) { - int answer = 0; - return answer; +class Solution7 { + + public static void main(String[] args) { + + String[] skill_trees = { "BACDE", "CBADF", "AECB", "BDA" }; + + System.out.println(solution("CBD", skill_trees)); + } + + public static int solution(String skill, String[] skill_trees) { + + String[] formalSkillTree = skill.split(""); + Set skillTreeSet = new HashSet(); + + for (String skillOrder : formalSkillTree) { + skillTreeSet.add(skillOrder); + } + + int formalSkillTreeCount = 0; + + for (String notFormalSkillTree : skill_trees) { + + boolean isFormal = true; + + Queue q = new LinkedList(Arrays.asList(formalSkillTree)); + + for (String notFormalSkillOrder : notFormalSkillTree.split("")) { + + if (skillTreeSet.contains(notFormalSkillOrder)) { + + if (notFormalSkillOrder.equals(q.peek())) { + + q.poll(); + + } else { + + isFormal = false; + break; + + } + + } + + } + + if (isFormal) + formalSkillTreeCount++; + } + + return formalSkillTreeCount; } } From fc0bc264c03a1c5b905fb1d4f5b6a553a81903b6 Mon Sep 17 00:00:00 2001 From: mordiumaco Date: Tue, 14 Jul 2020 00:23:53 +0900 Subject: [PATCH 2/2] 1-7 skill tree --- .../Solution.java" | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git "a/week1/7. \354\212\244\355\202\254 \355\212\270\353\246\254/Solution.java" "b/week1/7. \354\212\244\355\202\254 \355\212\270\353\246\254/Solution.java" index 68dd438..e83864f 100644 --- "a/week1/7. \354\212\244\355\202\254 \355\212\270\353\246\254/Solution.java" +++ "b/week1/7. \354\212\244\355\202\254 \355\212\270\353\246\254/Solution.java" @@ -60,3 +60,18 @@ public static int solution(String skill, String[] skill_trees) { return formalSkillTreeCount; } } + +// public int solution(String skill, String[] skill_trees) { +// int answer = 0; +// ArrayList skillTrees = new ArrayList(Arrays.asList(skill_trees)); +// //ArrayList skillTrees = new ArrayList(); +// Iterator it = skillTrees.iterator(); + +// while (it.hasNext()) { +// if (skill.indexOf(it.next().replaceAll("[^" + skill + "]", "")) != 0) { +// it.remove(); +// } +// } +// answer = skillTrees.size(); +// return answer; +// } \ No newline at end of file