문제 출처: https://www.acmicpc.net/problem/11508
11508번: 2+1 세일
KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두
www.acmicpc.net
1. 문제 접근 방식
가장 큰 원소 세개씩 묶어서 sum에다가 더해가면 될 것 같았다.
3으로 나누어 떨어지지 않을 경우 0을 추가하는 방향으로 접근했다.
2. 내가 푼 코드
import sys
case = int(sys.stdin.readline())
arr=[]
for _ in range(case):
arr.append(int(sys.stdin.readline()))
sum = 0
arr.sort()
arr.reverse()
if len(arr)%3 == 1:
arr.append(0)
arr.append(0)
elif len(arr)%3 ==2:
arr.append(0)
else:
arr=arr
for i in range(len(arr)//3):
sum+=arr[i*3+1]
sum+=arr[i*3]
print(sum)
3. 결과 및 느낀점
14번 부터 24번줄까지의 코드를
len(arr)%3!=2일때로 간단하게 줄일 수 있다.
코드를 간결하게 작성하는 연습이 필요하다...
'[Boj문제풀이]' 카테고리의 다른 글
[Boj/백준] 14241 Python (0) | 2021.08.26 |
---|---|
[Boj/백준] 3135 Python (0) | 2021.08.25 |
[Boj/백준] 9935 Python (0) | 2021.08.24 |
[Boj/백준] 11501 Python (0) | 2021.08.23 |
[Boj/백준] 1181 Python (0) | 2021.08.23 |