강의로 돌아가기
kiswiss777

하나의 예제 질문

모든 케이스가 정확하다고 생각되어지는데 하나의 케이스에서만 실패가 뜨는데 무슨 문제인지 알 수 있을까요?....

작성중인 코드―solution.cpp
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
33
34
35
36
37
38
#include <string>
#include <vector>

using namespace std;

int solution(string skill, vector<string> skill_trees) {
    vector<int> orderSkill;
    int size , answer = 0;
    bool possible,exist;
    for (int i = 0; i < skill_trees.size(); i++) {//전체 도는거
        possible = false; //현재 문장이 가능한 문장인가
        orderSkill.clear();// 초기화
        size = skill_trees[i].size();
        for (int j = 0; j < skill.size(); j++) { //현재문장의 길이만큼 돌기
            exist = false; // 선행문자가 존재체크
            for(int k=0;k<skill_trees[i].size();k++){
                if (skill[j] == skill_trees[i][k]) {
                    exist = true;
                    orderSkill.push_back(k);
                    break;
                }
            }
            if (!exist) //존재하지 않으면 사이즈만큼 넣어버리기
                orderSkill.push_back(size++);
        }
        for (int j = orderSkill.size() - 1; j > 0; j--) {
            if (orderSkill[j] - orderSkill[j - 1] < 0) {
                possible = false;
                break;
            }
            else
                possible = true;
        }
        if (possible)
            answer++;
    }
    return answer;
}
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.