관리 메뉴

cococo-coding

2576번. 홀수 (c++ 풀이) 본문

[BOJ] 코드 모음/C++_learning 문제집

2576번. 홀수 (c++ 풀이)

_dani 2023. 12. 3. 21:50

최종 코드

#include <iostream>
using namespace std;

int main() {
    //1. 일곱개의 자연수를 입력받는다.
    //2. 홀짝을 판단한다.
    //3. 홀수들의 합과 최솟값을 구한다.
    //4. 합과 최솟값을 출력한다.

    //1
    int num=0, sum=0, min=100;    
    for(int i=0; i<7; i++){
        cin >> num;
        //2,3
        if(num%2!=0){
            sum+=num;
            if(num<min){ //어차피 주어지는 수는 100보다 다 작기때문에 처음 홀수는 무조건 min이 된다. 
                min=num;
            }
        }       
    }
    
    //4
    if(sum!=0){
        cout << sum << endl << min;
    } else { //홀수가 없는 경우 예외처리해주기
        cout << -1;
    }
       
    return 0;
}

생각해야 할 조건들이 조금 복잡한 문제이다.

 

sum을 구하는 것은 쉬웠지만, 홀수들 중에서 최소값을 구하는 게 어려웠다.

처음 홀수를 무조건 min로 넣어야 다음 홀수와 비교가 가능한데 이거를 어떻게 짜야할까 싶었다.

그러다 구글링을 통해 어차피 입력되는 자연수는 모두 100미만이므로, 초깃값 mim을 100으로 설정하고 이를 홀수들과 비교하면 어차피 첫 번째 홀수는 100보다 작게 되므로 자동으로 min으로 들어가게 된다. 

이후에 들어오는 홀수들은 이 mim에 먼저 들어간 홀수들과 비교하면 되므로 코드가 간단하게 된다.

이 부분만 주의하면 될 것 같다. 

2023.12.03