[문제]
7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오.
예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지면 이들 중 홀수는 77, 41, 53, 85이므로 그 합은
77 + 41 + 53 + 85 = 256이 되고, 41 < 53 < 77 < 85 이므로 홀수들 중 최솟값은 41이 된다.
https://www.acmicpc.net/problem/2576
2576번: 홀수
7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지
www.acmicpc.net
🎨 풀이
💡 전체 코드
tmp = []
odd = []
for _ in range(7):
tmp.append(int(input()))
for num in tmp:
if num % 2 != 0 :
odd.append(num)
if len(odd) != 0:
print(sum(odd))
print(min(odd))
else :
print(-1)
> 핵심 : n의 가장 뒤 두자리를 00으로 바꾼 후 거기서 얼마만큼 더 있으면 나누어떨어지는 지 알아보고 그만큼 출력하기
🍦 코드 설명 (실행 순서대로 나열)
# main
tmp = []
odd = []
1. tmp, odd를 만든다.
- tmp : 입력받을 공간이다. (리스트)
- odd : 홀수만 넣어둘 공간이다. (리스트)
for _ in range(7):
tmp.append(int(input()))
2. 입력받은 후 tmp에 넣는 작업을 7번 반복한다.
for num in tmp:
if num % 2 != 0 :
odd.append(num)
3. tmp 에 있는 수 중 홀수들은 odd 리스트에 넣는다.
if len(odd) != 0:
print(sum(odd))
print(min(odd))
else :
print(-1)
4. 만약 odd에 수가 하나라도 있다면, 합계와 가장 작은 수를 차례대로 출력한다.
5. 만약 odd에 수가 하나도 없다면 -1을 출력한다.

끝~
⭐ 느낀점
> for문은 좀 여러번 쓰긴 했지만, 그래도 간결하게 잘 푼 것 같다.
'🎲 알고리즘 공부 > 백준' 카테고리의 다른 글
[백준] 2475번 - 검증수 (파이썬) (0) | 2022.08.29 |
---|---|
[백준] 1075번 - 나누기 (파이썬) (0) | 2022.08.28 |
[백준] 1924번 - 2007년 (파이썬) (0) | 2022.08.26 |
[백준] 2920번 - 음계 (파이썬) (0) | 2022.08.25 |
[백준] 10988번 - 팰린드롬인지 확인하기 (파이썬) (0) | 2022.08.23 |