프로그래머스
프로그래머스 lv2 - 스킬트리
dragonDeok
2024. 6. 23. 21:29
728x90
문제
풀이
- 선행 스킬의 맨 처음 스킬부터 유저가 만든 스킬트리와 비교
- 현재 체크해야 할 선행 스킬과 유저 스킬트리에서 체크해야 할 스킬이 같으면 다음 선행 스킬로 idx 증가
- 선행 스킬에 있는 스킬이 유저 스킬 트리에 있는 경우 cnt 증가
- 최종적으로 스킬 트리 끝까지 비교 후 idx와 cnt가 같으면 선행 스킬 순서대로 있다고 판단하여 answer 증가
코드
import java.util.*;
class Solution {
public int solution(String skill, String[] skill_trees) {
int answer = 0;
ArrayList<Character> s = new ArrayList<>(); // skill
for (char c : skill.toCharArray())
s.add(c);
int cc = 0;
for (String user : skill_trees) {
int idx = 0, cnt = 0;
for (int i = 0; i < user.length(); i++) {
if (idx < skill.length() && skill.charAt(idx) == user.charAt(i))
idx++;
if (s.contains(user.charAt(i)))
cnt++;
}
if (cnt == idx)
answer++;
}
return answer;
}
}