본문 바로가기

codeforce/#616 (Div.2)

Codeforces Round #616 (Div. 2) A. Even But Not Even

각 자리수의 합이 짝수인 수를 ebne(even but not even) 이라고 합니다.

주어진 인풋에서 특정 자리수를 제거하여 ebne을 만들 수 있으면, 그렇게 만든 수를 출력하고, 없으면 -1을 출력하는 문제입니다.

홀수 2개만 있으면 ebne을 만들 수 있으므로, input string에 대해서 0번째 위치부터 linear search를 하며 홀수 2개를 찾으면 그 2개를 붙여서 return 하고, 못찾으면 -1을 return하는 코드를 작성하면 됩니다.

#include<iostream>
#include<string>

using namespace std;

int main(){
    int t, n;
    string s;
    cin >> t;

    for (int i = 0; i < t; i ++){
        cin >> n;
        cin >> s;
        string result = "";
        int count = 0;
        for (int j = 0; j < s.length() ; j ++){
            int digit = atoi(s.substr(j,1).c_str());
            if(digit % 2 == 1){
                result += s[j];
                count ++;
            }
            if(count == 2) break;
        }
        if(count == 2){
            cout << result << endl;
        } else{
            cout << -1 << endl;
        }
    }
    return 0;
}
반응형

'codeforce > #616 (Div.2)' 카테고리의 다른 글

Codeforces Round #616 (Div. 2) B. Array Sharpening  (0) 2020.02.12