Contents

μΉ˜ν‚¨ 쿠폰 (with.Java)

   May 21, 2024     1 min read

β€œμΉ˜ν‚¨ 쿠폰 (with.Java)” λ¬Έμ œμ— λŒ€ν•˜μ—¬ μ•Œμ•„λ³Έ κΈ€μž…λ‹ˆλ‹€.

μ½”λ”© ν…ŒμŠ€νŠΈ 문제λ₯Ό ν’€λ©°, ν’€μ—ˆλ˜ λ¬Έμ œμ— λŒ€ν•œ νšŒκ³ μ™€ λ‹€λ₯Έ 풀이 방법을 μ•Œμ•„λ³΄λ©°, μ•Œμ•„κ°€κ³ μž ν•©λ‹ˆλ‹€.

λ¬Έμ œμ— λŒ€ν•΄ λ¨Όμ € μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

문제

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μΉ˜ν‚¨μ€ μΉ˜ν‚¨μ„ μ‹œμΌœλ¨ΉμœΌλ©΄ ν•œ λ§ˆλ¦¬λ‹Ή 쿠폰을 ν•œ μž₯ λ°œκΈ‰ν•©λ‹ˆλ‹€.

쿠폰을 μ—΄ μž₯ λͺ¨μœΌλ©΄ μΉ˜ν‚¨μ„ ν•œ 마리 μ„œλΉ„μŠ€λ‘œ 받을 수 있고, μ„œλΉ„μŠ€ μΉ˜ν‚¨μ—λ„ 쿠폰이 λ°œκΈ‰λ©λ‹ˆλ‹€.

μ‹œμΌœλ¨Ήμ€ μΉ˜ν‚¨μ˜ 수 chicken이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ 받을 수 μžˆλŠ” μ΅œλŒ€ μ„œλΉ„μŠ€ μΉ˜ν‚¨μ˜ 수λ₯Ό returnν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

μ œν•œμ‚¬ν•­

  • chicken은 μ •μˆ˜μž…λ‹ˆλ‹€.
  • 0 ≀ chicken ≀ 1,000,000

μž…μΆœλ ₯ μ˜ˆμ‹œ

chickenresult
10011
1,081120

λ¬Έμ œμ— λŒ€ν•œ λ‚˜μ˜ 풀이

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

        while (chicken >= 10) {
            answer += chicken / 10;
            chicken = chicken / 10 + chicken % 10;
        }
        return answer;
    }
}

풀이 리뷰

λ¨Όμ € answer λ³€μˆ˜λ₯Ό 0으둜 μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€.

while 루프λ₯Ό μ‚¬μš©ν•˜μ—¬ μΉ˜ν‚¨μ˜ κ°œμˆ˜κ°€ 10 이상인 κ²½μš°μ—λ§Œ λ°˜λ³΅ν•©λ‹ˆλ‹€.

ν˜„μž¬ μΉ˜ν‚¨μ˜ κ°œμˆ˜μ—μ„œ 10을 λ‚˜λˆˆ λͺ«μ„ answer에 λ”ν•©λ‹ˆλ‹€. μ΄λŠ” ν˜„μž¬ μΉ˜ν‚¨μ˜ κ°œμˆ˜μ—μ„œ 얻을 수 μžˆλŠ” 쿠폰의 κ°œμˆ˜μž…λ‹ˆλ‹€.

μΉ˜ν‚¨μ˜ 개수λ₯Ό 10으둜 λ‚˜λˆˆ λͺ«μ— μΉ˜ν‚¨μ˜ 개수λ₯Ό 10으둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό λ”ν•˜μ—¬ λ‹€μŒ μΉ˜ν‚¨μ˜ 개수λ₯Ό μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€.

μ΄λ ‡κ²Œ ν•¨μœΌλ‘œμ¨ ν•œ λ²ˆμ— κ΅¬λ§€ν•œ μΉ˜ν‚¨μ˜ κ°œμˆ˜μ™€ 쿠폰으둜 받은 μΉ˜ν‚¨μ˜ 개수λ₯Ό ν•©μ‚°ν•˜μ—¬ λ‹€μŒ λ‹¨κ³„μ˜ μΉ˜ν‚¨ 개수λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€.

while 루프가 μ’…λ£Œλ˜λ©΄ μΉ˜ν‚¨μ˜ κ°œμˆ˜κ°€ 10 미만이 λ˜μ—ˆμœΌλ―€λ‘œ ν•¨μˆ˜λŠ” λ§ˆμ§€λ§‰μœΌλ‘œ κ³„μ‚°λœ answer 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€.