๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Programmers lv-0

์น˜ํ‚จ ์ฟ ํฐ - Java [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ž…๋ฌธ]

by ๊ทคํ”ผํ‚ค 2022. 11. 28.

 

โค๏ธ Problem

๋”๋ณด๊ธฐ
  • ๋ฌธ์ œ
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์น˜ํ‚จ์€ ์น˜ํ‚จ์„ ์‹œ์ผœ๋จน์œผ๋ฉด ํ•œ ๋งˆ๋ฆฌ๋‹น ์ฟ ํฐ์„ ํ•œ ์žฅ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ์ฟ ํฐ์„ ์—ด ์žฅ ๋ชจ์œผ๋ฉด ์น˜ํ‚จ์„ ํ•œ ๋งˆ๋ฆฌ ์„œ๋น„์Šค๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , ์„œ๋น„์Šค ์น˜ํ‚จ์—๋„ ์ฟ ํฐ์ด ๋ฐœ๊ธ‰๋ฉ๋‹ˆ๋‹ค. ์‹œ์ผœ๋จน์€ ์น˜ํ‚จ์˜ ์ˆ˜ chicken์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์„œ๋น„์Šค ์น˜ํ‚จ์˜ ์ˆ˜๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

  • ์ œํ•œ ์‚ฌํ•ญ
    • chicken์€ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.
    • 0 ≤ chicken ≤ 1,000,000

 

  • ์ž…์ถœ๋ ฅ ์˜ˆ & ์„ค๋ช…
no chicken result
1 100 11
2 1,081 16
  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ํ•ฉ๋‹ˆ๋‹ค.

 


 

๐Ÿ’› Solution

ํ’€์ด

class Solution {
    public int solution(int chicken) {
        int coupon = chicken;
        int answer = 0;

        while (coupon > 9){
            answer += coupon / 10;
            int serviceChicken = coupon / 10;
            int leftCoupon = coupon % 10;
            coupon = leftCoupon + serviceChicken;
        }
        return answer;
    }
}

 

์ฒ˜๋ฆฌ์†๋„ Very Good

 


 

๐Ÿ’œ Comment

์ด ๋ฌธ์ œ๋„ ๋น„๊ต์  ๋‹จ์ˆœํ•˜๊ฒŒ ํ’€์—ˆ๋˜ ๋ฌธ์ œ๋‹ค.

coupon ๊ฐœ์ˆ˜๋Š” ์น˜ํ‚จ ๋งˆ๋ฆฌ์ˆ˜๋กœ ์„ ์–ธํ•œ๋‹ค์Œ, while๋ฌธ ์•ˆ์—์„œ answer์—๋Š” ์ฟ ํฐ 10์žฅ๋งˆ๋‹ค ์‹œ์ผœ๋จน์€ ์น˜ํ‚จ ๋งˆ๋ฆฌ์ˆ˜๋ฅผ ๋ˆ„์ ์‹œํ‚ค๊ณ  ์ฟ ํฐ 10์žฅ์”ฉ ์“ฐ๊ณ  ๋ฐ›์€ ์น˜ํ‚จ (serviceChicken)๊ณผ 10์žฅ์”ฉ ์‹œํ‚ค๊ณ  ๋‚จ์€ ์ฟ ํฐ (leftCoupon)์„ ๊ตฌํ•ด ๋”ํ•ด์„œ coupon์— ๋„ฃ๋Š”๋‹ค.

์ฟ ํฐ 10์žฅ ์“ฐ๊ณ  ๋ฐ›์€ ์„œ๋น„์Šค ์น˜ํ‚จ(serviceChicken)์„ ๊ตฌํ•œ ์ด์œ ๋Š” ์ด๊ฒŒ ๊ณง ์ฟ ํฐ์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„์˜ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋ ‡๊ฒŒ coupon ๋ณ€์ˆ˜์— ๊ฐ’์ด 10 ๋ฏธ๋งŒ์ธ ๊ฒฝ์šฐ๊นŒ์ง€ while๋ฌธ์„ ๋Œ๋ฆฌ๋ฉด ๋!

 

10469์œ„ ๐Ÿ’จ๐Ÿ’จ๐Ÿ’จ

 

 

 

 

๋Œ“๊ธ€