© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 3058 - 짝수를 찾아라

2024-08-09
BOJ
브론즈 III
cpp
원본 문제 보기
수학
구현

문제

BOJ 3058 - 짝수를 찾아라

7개의 자연수가 주어질 때, 짝수만 골라 그 합과 최솟값을 구하라.

입력

첫째 줄에 테스트 케이스 수 T, 이후 T줄에 7개의 자연수가 주어진다.

출력

각 테스트 케이스마다 짝수의 합과 최솟값을 출력한다.

예제

입력출력
1 1 2 3 4 5 6 712 2

풀이

7개의 수를 순회하며 짝수인 경우 합과 최솟값을 갱신한다.

  1. 7개의 수를 입력받으며 2로 나누어떨어지는지 확인한다
  2. 짝수이면 합에 더하고 현재 최솟값보다 작으면 갱신한다
  3. 각 테스트 케이스마다 결과를 출력한다

핵심 아이디어: 7개 고정이므로 단순 순회로 O(1)에 해결된다.

코드

#include <iostream>
using namespace std;
int main()
{
  int n, a[7], sum, min;
  cin >> n;
  while (n--)
  {
    sum = 0;
    min = 101;
    for (int i = 0; i < 7; i++)
    {
      cin >> a[i];
      if (a[i] % 2 == 0)
      {
        sum += a[i];
        if (a[i] < min)
          min = a[i];
      }
    }
    cout << sum << ' ' << min << '\n';
  }
}

복잡도

  • 시간: O(T) (T: 테스트 케이스 수, 각 7개 고정)
  • 공간: O(1)