반응형
문제
7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오.
예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지면 이들 중 홀수는 77, 41, 53, 85이므로 그 합은
77 + 41 + 53 + 85 = 256
이 되고,
41 < 53 < 77 < 85
이므로 홀수들 중 최솟값은 41이 된다.
입력
입력의 첫째 줄부터 일곱 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100보다 작다.
출력
홀수가 존재하지 않는 경우에는 첫째 줄에 -1을 출력한다. 홀수가 존재하는 경우 첫째 줄에 홀수들의 합을 출력하고, 둘째 줄에 홀수들 중 최솟값을 출력한다.
예제 입력 11277 38 41 53 92 85 |
예제 출력 125641 |
예제 입력 224 20 32 6 10 8 |
예제 출력 2-1 |
풀이
입력받은 수들 중 홀수만 골라 합과 최소를 출력하는 문제이다.
홀수를 판별하는 방법은 연산자 % 를 사용하는 것이다.
A % B 는 A를 B로 나눈 나머지를 뜻한다. 즉,
10 % 2 = 0
11 % 2 = 1
위의 공식이 성립하게된다.
짝수는 무조건 2로 나눌 수 있다.
반면 홀수는 2로 나누어 떨어지지 않는다.
이 점을 이용하여 홀수를 판별하도록 하자.
r = []
for i in range(7):
a = int(input())
# 홀수 판별 후 짝수라면 continue를 이용해
# for 문의 다음으로 넘어간다.
# 홀수일 경우 배열 r에 넣어주도록 하자.
if a % 2 == 0:
continue
else:
r.append(a)
# 홀수가 하나도 없는 경우 -1 출력
if len(r) == 0:
print(-1)
else:
print(sum(r),min(r),sep="\n")
반응형
'알고리즘 연습 > 기초 (입출력 등)' 카테고리의 다른 글
[🥉2 / 백준 10953 / 파이썬] A + B - 6 (0) | 2021.08.13 |
---|---|
[🥉3 / 백준 2446 / 파이썬] 별 찍기 - 9 (0) | 2021.08.13 |
[🥉3 / 백준 2490 / 파이썬] 윷놀이 (0) | 2021.08.01 |
[🥉3 / 백준 5523 / 파이썬] 경기 결과 (0) | 2021.07.31 |
[🥉1 / 백준 1252 / 파이썬] 이진수 덧셈 (0) | 2021.07.19 |