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번 틀렸으니, 배열 초기화 하는것은 기억하자.