본문 바로가기

PS/백준

[BOJ] 백준 5545 최고의 피자 (Swift)

반응형

문제

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

 

5545번: 최고의 피자

상근이는 근처 피자 가게에서 매일 저녁으로 피자를 배달해 먹는다. 주머니 사정이 얇아진 상근이는 이번 달부터는 "최고의 피자"를 구매하려고 한다. 최고의 피자란, 피자 가게에서 주문할 수

www.acmicpc.net

풀이

  • 1원 당 열량이 가장 큰 피자가 최고의 피자이고 최고의 피자의 1원 당 열량을 구하는 문제
  • 입력받은 토핑을 가장 큰 열량별로 정렬을 해주고, 1원 당 열량을 계산하는 방식으로 풀이할 수 있겠다고 생각이 듬
  • 1원 당 열량을 계산하고, 다음 토핑을 추가했을 때, 1원 당 열량이 현재보다 크다면 토핑을 추가하고 아니라면 더 이상 토핑을 추가하지 않으면 될 것이다 라고 생각함

소스코드

후기

  • 소스코드 25번 줄의 조건을 크거나 같다가 아닌 "크다" 로 해서 틀렸습니다가 계속 나왔었다..
  • Int 끼리의 몫을 구하는 것이므로 소수점 뒷 자리를 알 수 가 없었기에 크거나 같다로 조건을 변경해줘서 맞출 수 있었음
    • 만약 answer가 36.3 이고 다음 토핑을 추가했을 때 36.9가 되어도 둘다 36이기 때문에 토핑을 추가하지 않았었지만 이런 예외가 있음
  • 이 문제가 그리디 알고리즘이라는 것을 판별할 수 있다면 쉽게 풀 수 있는 문제였지만, 예외사항을 떠올리기는 쉽지 않았던 문제였음
반응형