koi 문제 중 2576 홀수를 풀어보자

2576 홀수

위 문제는 koi 문제 중 초등부 예선에 있는 문제로 홀수 합계와 최소홀수 구하는 문제이다.

현재 업무에서 C++을 언어를 주 언어로 하다보니, C++로 모든 것을 연습하고자한다. 따라서 이번 문제도 C++를 보고 풀었으나, 다른 사람들이 푼 소스코드를 보거나, 지식이 부족한 부분에 대해 추가적으로 정리하고자 한다.

문제

홀수 문제는 초등부 문제로 다소 쉽게 풀 수 있는 문제이다. 자신감을 찾기 위한 문제이기도 하다.

100보다 작은 자연수 7개를 입력받는다. 7개 중 홀수들만 찾아 합계와 그 중 최소값을 출력해보자.

문제 풀이

해당 문제는 단순하게 홀수값 합계와 홀수 최솟값을 출력하면 된다.

#include <iostream>

using namespace std;

int main()
{
  int av = 0, arr[100] = {0,};
  for (int i = 0; i < 7; i++) {
    int tmp;
    cin >> tmp;
    if ((tmp % 2) != 0) {
      arr[tmp]++;
      av += tmp;
    }
  }

  if (!av) cout << -1 << endl;
  else {
    for (int i = 1; i < 100; i+=2) {
      if (arr[i]) {
        cout << av << endl << i << endl;
        break;
      }
    }
  }
}

위의코드는 대표값 2 에서 본 인사이트를 풀이를 이용해 풀었다.

인사이트

인사이트라기 보다는 틀렸던 부분이다.

arr[100] = {0,}

배열값을 초기화 하지 않으면 값이 제대로 출력되지 않다 틀린걸로 나온다. 이렇게 5번 틀렸으니, 배열 초기화 하는것은 기억하자.