[백준][C++] 2576번 홀수
# 홀수
문제 링크
분석
7개의 자연수가 줄바꿈으로 한 줄에 하나씩 입력됩니다.
이 자연수들 중 홀수들을 찾아 총 합을 구하고, 홀수 중 최솟값을 출력하는 문제입니다.
입력에 홀수가 존재하는 경우 첫째 줄에 홀수들의 합을 출력하고, 둘째 줄에 홀수 중 최솟값을 출력하면 됩니다.
만약, 홀수가 존재하지 않는 경우 첫째 줄에 -1을 출력해야합니다.
풀이
#include <iostream>
int main()
{
int sum{}, min{ 100 }, num{}, count{ 7 };
for (int i = 0; i < count; ++i)
{
std::cin >> num;
// 홀수인지 확인하는 조건식
if (num % 2 == 1)
{
sum += num;
// 홀수 중 가장 작은 값인 경우
if (min > num)
{
min = num;
}
}
}
// 홀수가 없는 경우
if (min == 100 && sum == 0)
{
std::cout << -1 << std::endl;
}
// 홀수가 있는 경우
else
{
std::cout << sum << std::endl;
std::cout << min << std::endl;
}
}
성능 요약
시간 복잡도는 상수 시간에 끝나기 때문에 $O(1)$입니다.
- 반복문 $O(7) \approx O(1)$
공간 복잡도는 고정된 크기의 상수 공간을 사용하기 때문에 $O(1)$입니다.
메모리: 2020 KB
시간: 0 ms
댓글남기기