티스토리 뷰

1. 문제

https://programmers.co.kr/learn/courses/30/lessons/49993

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

2. 설명

1) skill_trees 각각 하나씩 skill에 요소가 있는지 비교

1-1) 여기서 선행스킬을 아얘 하나도 안쓰면 그 것도 정답임

2) 선행스킬을 사용했는데 그게 첫번째 요소가 아니다 -> 정답X isSkill을 false로 바꾸고 for문을 나감

2-2) skillNum으로 다음 검사할 요소로 ++해줌

3) isSkill이 계속 true면 정답쓰

 

설명고자네 ㅋㅋ

 

3. 코드

class Solution {
    public int solution(String skill, String[] skill_trees) {
        int answer = 0;
        boolean isSkill;
        
        for(String s : skill_trees) {
            isSkill = true;
            int skillNum = 0;
            int i = 0;
            for(i=0; i<s.length(); i++) {
                if(skill.indexOf(s.charAt(i))>-1) {
                    if(skill.charAt(skillNum) == s.charAt(i)) {
                        skillNum++;
                    }
                    else {
                        isSkill = false; // 선행스킬x
                        break;
                    }  
                }
            }
            if(isSkill) {
                answer++;
            }
        }
        return answer;
    }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday