스킬트리

이준경·2021년 5월 29일
0

<나의풀이>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Solution {
    public int solution(String skill, String[] skill_trees) {
        int answer = 0;
        int sleng = skill.length();
        int stleng = skill_trees.length;
 
        for(int i=0; i<stleng; i++){
            int num = skill_trees[i].indexOf(skill.charAt(0));
            for(int j=1; j<sleng; j++){
                if(num==-1){
                    if(num<skill_trees[i].indexOf(skill.charAt(j))){
                        answer--;
                        break;
                    }
                }else{
                    if(num>skill_trees[i].indexOf(skill.charAt(j)) &&   
                        skill_trees[i].indexOf(skill.charAt(j))!=-1){
                        answer--;
                        break;
                    }else{
                        num=skill_trees[i].indexOf(skill.charAt(j));
                    }
                }
 
            }
            answer++;
 
        }
 
        return answer;
    }
}
cs
  1. skill의 첫 문자를 skill_trees[i]에서 indexOf를 이용하여 위치를 num에 대입.
  2. num이 -1 일 때 skill의 다른 문자가 skill_trees[i]에서의 위치가 -1보다 크다면 answer-- 후 break.
  3. num이 -1이 아닐경우 skill의 다른 문자가 skill_trees[i]에서의 위치보다 작고 -1이 아닐때 answer--후 break.
    맞다면 num에 skill_trees[i]에서의 위치 대입.
  4. 반복후 answer 반환

<다른사람풀이>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.*;
 
class Solution {
    public int solution(String skill, String[] skill_trees) {
        int answer = 0;
        ArrayList<String> skillTrees = new ArrayList<String>(Arrays.asList(skill_trees));
        //ArrayList<String> skillTrees = new ArrayList<String>();
        Iterator<String> it = skillTrees.iterator();
 
        while (it.hasNext()) {
            if (skill.indexOf(it.next().replaceAll("[^" + skill + "]""")) != 0) {
                it.remove();
            }
        }
        answer = skillTrees.size();
        return answer;
    }
}
cs
  1. skill_trees를 Arrays.asList를 이용하여 배열로 만듬
  2. skill.indexOf(현재 skill_trees의 요소에서 replaceAll로 skill의 문자를 제외한 나머지 문자를 ""로 치환) !=0 이면 현재 요소를 제거한다.
  3. 2번 반복 후 skillTrees.size()를 answer에 대입후 반환

0개의 댓글

관련 채용 정보