inblog logo
|
stupefyee
    알고리즘문제풀기

    [JAVA 문제 풀이] 344. 스킬트리

    프로그래머스 (49993)
    Stupefyee's avatar
    Stupefyee
    Jun 26, 2025
    [JAVA 문제 풀이] 344. 스킬트리
    Contents
    내가 작성한 코드다른 사람의 코드
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/49993
    notion image
     

    내가 작성한 코드

    class Solution { public int solution(String skill, String[] skill_trees) { int answer = 0; for (String tree : skill_trees) { StringBuilder filtered = new StringBuilder(); // 선행 스킬만 추출 for (char c : tree.toCharArray()) { if (skill.indexOf(c) != -1) { filtered.append(c); } } // 시작이 skill과 맞는지 확인 if (skill.startsWith(filtered.toString())) { answer++; } } return answer; } }
     

    다른 사람의 코드

    import java.util.*; class Solution { public int solution(String skill, String[] skill_trees) { int answer = 0; // skill_trees 배열을 ArrayList로 변환 ArrayList<String> skillTrees = new ArrayList<String>(Arrays.asList(skill_trees)); // skillTrees 리스트의 요소를 하나씩 순회할 반복자 생성 Iterator<String> it = skillTrees.iterator(); // 모든 스킬트리에 대해 검사 while (it.hasNext()) { // 정규식을 활용해 skill에 포함된 문자만 남기고 제거 String filtered = it.next().replaceAll("[^" + skill + "]", ""); // filtered가 skill의 선행 순서로 시작하지 않으면 제거 if (skill.indexOf(filtered) != 0) { it.remove(); } } // 남은 반복자 수 answer = skillTrees.size(); return answer; } }
     
    Share article
    Contents
    내가 작성한 코드다른 사람의 코드

    stupefyee

    RSS·Powered by Inblog