Submission #149118

# Submission time Handle Problem Language Result Execution time Memory
149118 2019-09-01T05:46:19 Z 티셔츠 콜렉터(#3632, yoni, jisunchae, jsg1504) HicCup (FXCUP4_hiccup) C++17
Compilation error
0 ms 0 KB
#include "hiccup.h"
#include <algorithm>

int maximumHiccup (int* levelCountArray, int level) {
    if (levelCountArray[level] == 0) {
        return 0;
    } else {
        int childHiccup = maximumHiccup(levelCountArray, level + 1);
        if (childHiccup % 2 == 0) {
            return max(childHiccup, levelCountArray[level]);
        } else {
            return 0;
        }
    }
    
}

int HicCup(std::string S) {
    int N = S.size();
    int levelArray[N] = {-1};
    int level = 1;
    int firstCharacterIndex = 0;
    char previousCharacter = ' ';
    
    // 첫번째 캐릭터 찾는 루프
    for (int index = 0; index < N; index++) {
        if (S[index] != '!') {
            previousCharacter = S[index];
            levelArray[index] = 1;
            firstCharacterIndex = index;
            break;
        }
        levelArray[index] = -1;
    }
    
    // 나머지 루프
    for (int index = firstCharacterIndex + 1; index < N; index++) {
        if (S[index] == '!') {
            levelArray[index] = -1;
            continue;
        }
        if (previousCharacter != S[index]) {
            levelArray[index] = level;
        }
        if (previousCharacter == S[index]) {
            if (previousCharacter == 'H') levelArray[index] = ++level;
            if (previousCharacter == 'C') levelArray[index] = --level;
        }
        previousCharacter = S[index];
    }
    
    int levelCountArray[N] = {0};
//    for(int i=0; i<N; i++) {
//        cout << levelArray[i] << ' ';
//    }
    
    for (int i= 0; i < N ; i++){
        if (levelArray[i] != -1) levelCountArray[levelArray[i]]++;
    }
    
    int max = maximumHiccup(levelCountArray, 1);
    if (max % 2 > 0) {
        return max;
    } else {
        return -1;
    }
}

Compilation message

hiccup.cpp: In function 'int maximumHiccup(int*, int)':
hiccup.cpp:10:20: error: 'max' was not declared in this scope
             return max(childHiccup, levelCountArray[level]);
                    ^~~
hiccup.cpp:10:20: note: suggested alternative:
In file included from /usr/include/c++/7/algorithm:62:0,
                 from hiccup.cpp:2:
/usr/include/c++/7/bits/stl_algo.h:3468:5: note:   'std::max'
     max(initializer_list<_Tp> __l, _Compare __comp)
     ^~~