🏁 Algorithm/ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

[Programmers] 두 수의 λ‚˜λˆ—μ…ˆ(μžλ°”)

Dhey 2023. 3. 17. 20:07
λ°˜μ‘ν˜•

문제

μ •μˆ˜ num1κ³Ό num2κ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, num1을 num2둜 λ‚˜λˆˆ 값에 1,000을 κ³±ν•œ ν›„ μ •μˆ˜ 뢀뢄을 return ν•˜λ„λ‘ soltuion ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

 

 

μ œν•œμ‚¬ν•­

   -   0 < num1 ≤ 100

   -   0 < num2 ≤ 100

 


μž…μΆœλ ₯ 예

num1 num2 result
3 2 1500
7 3 2333
1 1 62

 


μž…μΆœλ ₯ 예 μ„€λͺ…

  μž…μΆœλ ₯ 예 #1

  • num1이 3, num2κ°€ 2μ΄λ―€λ‘œ   3 / 2 = 1.5에 1,000을 κ³±ν•˜λ©΄ 1500이 λ©λ‹ˆλ‹€.

  μž…μΆœλ ₯ 예 #2

  • num1이 7, num2κ°€ 3μ΄λ―€λ‘œ   7 / 3 = 2.33333...에 1,000을 κ³±ν•˜λ©΄ 2333.3333.... 이 되며, μ •μˆ˜ 뢀뢄은 2333μž…λ‹ˆλ‹€.

  μž…μΆœλ ₯ 예 #3

  • num1이 1, num2κ°€ 16μ΄λ―€λ‘œ   1 / 16 = 0.0625에 1,000을 κ³±ν•˜λ©΄ 62.5κ°€ 되며, μ •μˆ˜ 뢀뢄은 62μž…λ‹ˆλ‹€.

 

 


 

풀이

이 λ¬Έμ œλŠ” μžλ£Œν˜•, ν˜•λ³€ν™˜κ³Ό κ΄€λ ¨λœ λ¬Έμ œλ‹€. ν˜•λ³€ν™˜ λ¬Έμ œλΌλŠ” 것은 μ•Œμ•˜λŠ”λ° κ³„μ†λœ μ‹œλ„μ—λ„ 였λ₯˜κ°€ λ°œμƒν–ˆλ‹€.

μ•Œκ³ λ³΄λ‹ˆ ν˜•λ³€ν™˜ κ°œλ…κ³Ό μ‚¬μš©λ²•μ„ μ •ν™•ν•˜κ²Œ μˆ™μ§€ν•˜μ§€ λͺ»ν•΄ 생긴 μ‹€μˆ˜ λ•Œλ¬Έμ΄μ—ˆλ‹€.

 

 

처음 μ—λŸ¬ μ½”λ“œ
class Solution {
    public int solution(int num1, int num2) {
        double answer = (double)(num1 / num2) * 1000;
        return (int)answer;
    }
}

였λ₯˜κ°€ λ°œμƒν•œ 첫 번째 μ½”λ“œμ΄λ‹€.

μ²˜μŒμ—” μ–΄λŠ λΆ€λΆ„μ—μ„œ ν‹€λ ΈλŠ”μ§€ λͺ°λžλ‹€. 아무리봐도 λ§žλŠ” 것 κ°™μ•„ λ³΄μ˜€μœΌλ‚˜, κ³„μ†λœ 였λ₯˜λ‘œ 계속 보며 κ°œλ…κ³Ό μ˜ˆμ‹œ μ½”λ“œλ₯Ό μ°Ύμ•„λ³΄λ‹ˆ λ‚˜λŠ” κ΄„ν˜Έλ₯Ό λ³€μˆ˜ 뢀뢄에 μ‚¬μš©ν•˜κ³  μžˆμ—ˆλ‹€. 

 

μœ„μ— μž‘μ„±ν•œ μ½”λ“œλŒ€λ‘œ 싀행을 ν•œλ‹€λ©΄

num1 = 1, num2 = 16 일 λ•Œ, num1κ³Ό num2λŠ” intν˜• μ΄λ―€λ‘œ (double)(num1 / num2)λŠ” (double)0이 λ˜μ–΄ 값이 0이 λœλ‹€. 0 * 1000은 λ‹Ήμ—°νžˆ 0μ΄λ―€λ‘œ 62κ°€ returnλ˜μ§€ μ•ŠλŠ”λ‹€.

 

 

 

λ”°λΌμ„œ intν˜•μΈ num1κ³Ό num2의 κ²°κ³Ό 값을 doubleν˜•μœΌλ‘œ λ¬Άμ–΄ κ³„μ‚°ν•œ ν›„, returnν•  λ•Œ doubleν˜•μ„ intν˜•μœΌλ‘œ ν˜•λ³€ν™˜ μ‹œμΌœμ€€λ‹€.

 

μ΅œμ’… μ½”λ“œ
class Solution {
    public int solution(int num1, int num2) {
        double answer = ((double) num1 / num2) * 1000;
        return (int)answer;
    }
}

 

 

λ°˜μ‘ν˜•