입출력 예 설명
입출력 예 #1
- 100마리를 주문하면 쿠폰이 100장 발급되므로 서비스 치킨 10마리를 주문할 수 있습니다.
- 10마리를 주문하면 쿠폰이 10장 발급되므로 서비스 치킨 1마리를 주문할 수 있습니다.
- 따라서 10 + 1 = 11을 return합니다.
입출력 예 #2
- 1081마리를 주문하면 쿠폰이 1081장 발급되므로 서비스 치킨 108마리를 주문할 수 있습니다. 그리고 쿠폰이 1장 남습니다.
- 108마리를 주문하면 쿠폰이 108장 발급되므로 서비스 치킨 10마리를 주문할 수 있습니다. 그리고 쿠폰이 8장 남습니다.
- 10마리를 주문하면 쿠폰이 10장 발급되므로 서비스 치킨 1마리를 주문할 수 있습니다.
- 1마리를 주문하면 쿠폰이 1장 발급됩니다.
- 가지고 있는 쿠폰이 총 10장이므로 서비스 치킨 1마리를 추가로 주문할 수 있습니다.
- 따라서 108 + 10 + 1 + 1 = 120 을 return합니다.
- 내 풀이
class Solution {
public int solution(int chicken) {
int answer = -1;
// 왜 -1로 해둔지 모르겠으나...0으로 초기화 시킴
answer = 0;
// 치킨 1마리당 쿠폰 1장이기 때문에 치킨마리 수 만큼 초기화
int coupon = chicken;
while(coupon >= 10){
// 처음 루프엔 쿠폰의 값이 치킨 마리 수와 같음 그래서 쿠폰 / 10 은 치킨 / 10 임
// 10마리 당 서비스 쿠폰이 1장이기 때문에 남은 쿠폰 값을 구한다.
answer += coupon / 10; // 예) 1081 / 10
coupon = (coupon / 10) + (coupon % 10); (1081 / 10) + (1081 % 10) -> 108 + 1
}
return answer;
}
}
처음에 서비스 치킨 따로 쿠폰 따로 남은 쿠폰 따로 해서 총 치킨을 구하려고 하다보니
머리만 복잡해지고 코드가 자꾸 엉켜서 몇시간 동알 작성했다 지웠다만 반복하였다
힌트를 얻을 까 싶어서 질문하기를 보니 루프를 돌면서 그때그때마다 쿠폰과 서비스 치킨을 적용해줘야 한다고 해서
무작정 단순하게 , 어렵게 생각안하려고 짜보다보니 운이 좋게 짜진거 같다....
- 다른 사람 풀이
class Solution {
public int solution(int chicken) {
int answer = chicken/9;
if(chicken>1&&chicken%9==0){
answer--;
}
return answer;
}
}
이렇게 간단하게...?
'프로그래머스 > [프로그래머스 - JAVA] Lv.0' 카테고리의 다른 글
[프로그래머스 - JAVA] 유한소수 판별하기 (0) | 2023.03.16 |
---|---|
[프로그래머스 - JAVA] 등수 매기기 (0) | 2023.03.16 |
[프로그래머스 - JAVA] 로그인 성공? (0) | 2023.03.16 |
[프로그래머스 - JAVA] 직사각형 넓이 구하기 (0) | 2023.03.15 |
[프로그래머스 - JAVA] 종이 자르기 (0) | 2023.03.15 |
댓글