-
백준_5545_최고의 피자(python)Algorithm/백준_생각정리 2023. 4. 19. 14:08
※ 접근법
n의 숫자가 크지 않았기 때문에 구현으로 풀어야겠다고 생각했다.
※ 풀이
1. 처음 도우만 선택했을 때 1원당 칼로리를 계산해놓는다.
2. 입력받은 칼로리를 리스트에 저장해놓고 내림차순으로 정렬한다.
3. 리스트에서 칼로리를 하나씩 보면서 1원당 칼로리를 계산하고 이전에 구했던 것보다 작아진다면 반복문을 탈출한다.
( 토핑의 가격은 하나로 고정돼있기 때문에 칼로리를 내림차순으로 정렬해놓으면 뒤로 갈수록 1원당 가격이 내려갈 수 밖에 없다.)
n = int(input()) a,b = map(int,input().split()) dow = int(input()) data = [] for i in range(n): data.append(int(input())) data.sort(reverse=True) money = a kalori = dow won = dow / a for i in data: money += b kalori += i now = kalori / money if won < now: won = now else: break print(int(won))
※ 회고
처음에는 '/' 기호가 아닌 '//'로 계산했었다. 결국 몫만 필요하다고 생각했기 때문에 내린 결론이었다. 근데 하나 생각하지 못한 반례가 있었다. 근데 이 반례가 무엇인지 모르겠어서 질문 게시판에 자세하게 작성하다가 반례를 떠올리게 됐다. 차후에도 모르는 것이 있다면 무엇을 모르는지 자세하게 작성해보자. 해결하게 될 수 있을지도 모른다.
'Algorithm > 백준_생각정리' 카테고리의 다른 글
백준_14499_주사위 굴리기(python) (0) 2023.05.02 백준_20056_마법사 상어와 파이어볼(python) (0) 2023.04.30 백준_15961_회전 초밥(python) (0) 2023.04.14 백준_11509_풍선 맞추기(python) (0) 2023.04.10 백준_6198_옥상 정원 꾸미기(python) (0) 2023.04.07