반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 유한소수 판별하기
- 알고리즘의 조건
- 과일 장수
- 트리
- 프로그래머스
- 자료구조
- Combination
- 유사코드
- import itertools
- itertools
- java
- 자바
- 좋은 알고리즘
- LV.1
- 알고리즘
- 태그
- python
- list
- 파이썬
- 알고리즘의 조건 5가지
- 코딩테스트
- 알고리즘 표현
- 큐
- 리스트
- Import
- 코딩 테스트
- html
- 들여쓰기로 표현한 트리
- 스택
- Tree
Archives
- Today
- Total
인천의 자유인
[Python] 과일 장수 - 프로그래머스(Lv.1) 본문
728x90
반응형



반응형
나의 문제 풀이
def solution(k, m, score):
answer = sorted(score)
a = len(answer)%m
for i in range(a):
answer.pop(0)
result = 0
for i in range(0,len(answer),m):
result += answer[i]*m
return result
k는 사과 최대 점수, m은 한 상자에 들어가는 사과 수임을 명확히 인식하고 들어가야지 헷갈리지 않습니다.
먼저 score를 오름 차순으로 정렬한 후 사과 박스에 담은 후 남은 사과 수를 구합니다. 최대 이익으로 내기 위해서는 가장 점수가 낮은 사과들을 제외하는 것이 좋기 때문입니다. 남은 사과 수는 answer 리스트 안에서 가장 점수가 낮은 사과로 구성되어야 하기 때문에 이를 간편하게 구하기 위해선 sort로 정렬하는 작업이 필요합니다.
answer를 정렬하는 작업을 한 후 남은 사과 개수 만큼 for문을 돌려서 answer리스트에서 맨 앞에 있는(가장 낮은 사과 점수) 것을 계속 없앱니다.
그리고 m으로 딱 나눠지는 수가 만들어지면 m 단위로 가격을 구합니다. 입출력 #2이 계산한 방식과 같이 구하는 것입니다. answer[i]는 최저 사과 점수를 의미하고 m은 상자에 들어갈 수입니다. 계속 더하면 결국 답을 도출할 수 있게 됩니다.
중간에 print로 확인하시면서 보시면 어떻게 작동하고 있는지 더 이해가 잘 될수 있습니다.
728x90
반응형
'Python > Python코딩테스트' 카테고리의 다른 글
[Python] 소수 만들기 -프로그래머스(Lv.1) (0) | 2024.09.09 |
---|---|
[Python] 소수 찾기 - 프로그래머스(Lv.1) (0) | 2024.07.25 |
[Python] 모의고사 - 프로그래머스(Lv.1) (0) | 2024.07.16 |
[Python] 기사단원의 무기 - 프로그래머스(Lv.1) (0) | 2024.07.13 |
[Python] 2016년 - 프로그래머스(lv.1) (0) | 2024.07.11 |