본문 바로가기
PROGRAMMING CODE/C++

[BAEKJOON] No.21312 C++

by daye_ 2022. 3. 4.
 

21312번: 홀짝 칵테일

정진이는 특별한 음료를 가지고 있다. 음료들은 정수로 표현되는 고유 번호를 가지고 있다. 정진이는 이 음료들을 섞어 만든 칵테일을 만든다. 이 칵테일은 홀짝 칵테일이라 부르는데, 홀짝 칵

www.acmicpc.net

 

 


하나하나 홀수를 걸러내는 코드

#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
    int a, b, c, sum = 0;
        cin >> a >> b >> c;
        if (a % 2 == 1) { // a 홀수
            if (b % 2 == 1) { // b 홀수
                if (c % 2 == 1) cout << a * b * c << endl; //c 홀수
                else cout << a * b << endl; //c짝수
            }
            else { // b 짝수
                if (c % 2 == 1) cout << a * c << endl; //c 홀수
                else cout << a << endl; //c짝수
            }
        }
        else { // a 짝수
            if (b % 2 == 1) { // b 홀수
                if (c % 2 == 1) cout << b * c << endl; //c 홀수
                else cout << b << endl; //c짝수
            }
            else { // b 짝수
                if (c % 2 == 1) cout << c << endl; //c 홀수
                else cout << a * b * c << endl; //c짝수
            }
        }
        return 0;
    
}

 

 

아래 코드는 백준에서 정답처리는 안되지만 결과가 잘 나오는것같다. 

혹시 아래 코드 반례가 있다면 알려주세요.

#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {

    int a,b,c,sum=1;
    cin >> a >> b >> c;
   
    if(a%2==1) sum*=a; //홀수일때만 sum에 곱하기
    if(b%2==1) sum*=b;
    if(c%2==1) sum*=c;
    
    if(sum==1) sum=a*b*c; //홀수가 없는경우(모두 짝수인 경우)
    
    cout << sum << endl;
    return 0;
}

 

 

 

+코드 추가

flag 변수를 추가해서 제출하니 정답처리가 되었다.

#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
    int a,b,c,flag =0,sum=1;
    cin >> a >> b >> c;
    if(a%2==1){
        sum*=a;
        flag = 1;
    }
    if(b%2==1) {
        sum*=b;
        flag = 1;
    }
    if(c%2==1) {
        sum*=c;
        flag = 1;
    }
    
    if(flag==0) sum = a*b*c;
    cout << sum <<endl;

    return 0;
}

'PROGRAMMING CODE > C++' 카테고리의 다른 글

[BAEKJOON] No.2460 C++  (0) 2021.10.14
[BAEKJOON] No.2953 C++  (0) 2021.10.14