"감도 3000배 문제"를 풀어 보았다

4425 단어 C++트위터재료


트위터에서 본 이 문제가 경기 프로그래밍적(AtCoder의 300점 문제 정도)이라고 느꼈기 때문에 c++로 풀어 보았다.

using namespace std;

int main(int argc, char *argv[])
{
    //init
    string orc = "ABCDE";
    sort(orc.begin(), orc.end());

    //calc
    while (next_permutation(orc.begin(), orc.end())){
        int kando = 0;
        for (size_t i = 0; i < orc.length(); i++){
            char drug = orc[i];
            switch (drug){
            case 'A':
                kando /= 2;
                break;

            case 'B':
                kando -= 900;
                break;

            case 'C':
                kando += 2000;
                break;

            case 'D':
                kando *= 5;
                break;

            case 'E':
                kando += 500;
                break;

            }
        }

        if (kando == 3000){
            cout << orc << endl;
        }
    }

    return 0;
}

좋은 웹페이지 즐겨찾기