
내가 작성한 코드
class Solution {
public int solution(int chicken) {
int answer = 0;
while (chicken >= 10) {
int coupon = chicken % 10; // 남는 쿠폰 수
chicken /= 10; // 쿠폰 당 치킨 수
answer += chicken; // 치킨 수 저장
chicken += coupon; // 치킨 수 + 쿠폰 수 (서비스 치킨도 쿠폰을 받음)
}
return answer;
}
}
다른 사람의 코드
class Solution {
public int solution(int chicken) {
int answer = chicken/9;
if(chicken>1&&chicken%9==0){
answer--;
}
return answer;
}
}
- 닭 10마리 중 한 마리는 공짜 → 9마리를 주문하면 한 마리를 공짜
- 첫 주문 시에는 10마리 값을 모두 지불해야 공짜 닭을 받을 수 있기 때문에, 9로 딱 나누어떨어질 경우 마지막 한 마리 값을 더 지불
- 한 마리도 시켜 먹지 않았을 경우에도 받을 수 없는 공짜 닭이 없어 if 조건에서 true를 반환받기 때문에 조건에서 제외
Share article