새소식

⌨️ Algorithms/백준

[Python] 백준 28062번_준석이의 사탕 사기

2023. 6. 7. 22:07

  • -

https://www.acmicpc.net/problem/28062

 

28062번: 준석이의 사탕 사기

준석이는 두 동생을 위해 사탕 가게에서 사탕을 최대한 많이 사 가려고 한다. 사탕 가게에는 $N$개의 사탕 묶음이 있으며 $i$번째 사탕 묶음에는 $a_i$개의 사탕이 있다. 준석이는 정말 부자라 사탕

www.acmicpc.net

 

  • 준석이는 두 동생을 위해 사탕 가게에서 사탕을 최대한 많이 사 가려고 함
  • 사탕 가게에는 N개의 사탕 묶음이 있으며 i번째 사탕 묶음에는 ai개의 사탕이 있음
  • 준석이가 사간 총 사탕의 개수가 홀수가 되면 두 동생이 사탕을 한 개라도 더 갖기 위해 서로 싸울 것이라 총 짝수 개의 사탕을 가져가려고 함
  • 준석이를 위해서 최대로 가져갈 수 있는 사탕의 개수를 구하기
  • 입력
    • 첫째 줄에 사탕 묶음의 개수 N이 주어짐 (1 <= N <= 1000)
    • 둘째 줄에 각각의 사탕 묶음에 담겨있는 사탕의 개수 a1,a2,⋯,an가 주어짐 (1 <= ai <= 1000)
    • 입력으로 주어지는 모든 수는 정수
  • 출력
    • 준석이가 최대로 가져갈 수 있는 사탕의 개수를 출력
    • 사탕을 홀수 개로만 가져갈 수 있으면 0을 출력
  • 시간 제한: 1초
  • 메모리 제한: 1024 MB

 

"""
입출력 예시)

(예제 입력 1) 
5
8 3 6 7 5
            -> 26

(예제 입력 2) 
1
5
    -> 0
"""

 

 

## 의사코드 ##

# 최대한 많은 수의 사탕을 가져가야 함
# 총 짝수 개의 사탕을 가져가야 함

# -> 전체 사탕 개수의 총합(total)을 구해서 짝수이면 출력
# -> 총합이 홀수이면 가장 작은 홀수 개의 사탕부터 빼기

 

 

 

 

n = int(input())
candy = list(map(int, input().split()))

# 사탕 개수 오름차순 정렬
candy.sort()
# 전체 사탕 개수 총합
total = sum(candy)
rest = 0 # 나머지
for i in range(n):
    # 총합이 짝수이면 총합 출력
    if total % 2 == 0:
        print(total)
        rest = 1
        break
    # 총합이 홀수인 경우
    # 현재 사탕의 개수가 홀수이면 총합에서 현재 사탕 개수 빼기
    if candy[i] % 2 == 1:
        total -= candy[i]
        print(total)
        rest = 1
        break
# 나머지가 0이면 사탕을 홀수 개로만 가져갈 수 있으므로 0 출력
if rest == 0:
    print('0')

 

 

 

 

 

 

https://github.com/HyeokjinKang/BOJ-Solutions

 

GitHub - HyeokjinKang/BOJ-Solutions: 쿠피의 백준 솔루션

쿠피의 백준 솔루션. Contribute to HyeokjinKang/BOJ-Solutions development by creating an account on GitHub.

github.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!