algorithm

πŸ’» μžλ°” μ•Œκ³ λ¦¬μ¦˜ - μ£Όμ‚¬μœ„ κ²Œμž„2

ohgu-ohgu 2023. 9. 21. 10:21
728x90

πŸ“• 문제 μ„€λͺ…

1λΆ€ν„° 6κΉŒμ§€ μˆ«μžκ°€ 적힌 μ£Όμ‚¬μœ„κ°€ μ„Έ 개 μžˆμŠ΅λ‹ˆλ‹€. μ„Έ μ£Όμ‚¬μœ„λ₯Ό ꡴렸을 λ•Œ λ‚˜μ˜¨ 숫자λ₯Ό 각각 a, b, c라고 ν–ˆμ„ λ•Œ μ–»λŠ” μ μˆ˜λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

 

μ„Έ μˆ«μžκ°€ λͺ¨λ‘ λ‹€λ₯΄λ‹€λ©΄ a + b + c 점을 μ–»μŠ΅λ‹ˆλ‹€.
μ„Έ 숫자 쀑 μ–΄λŠ 두 μˆ«μžλŠ” κ°™κ³  λ‚˜λ¨Έμ§€ λ‹€λ₯Έ μˆ«μžλŠ” λ‹€λ₯΄λ‹€λ©΄ (a + b + c) × (a2 + b2 + c2 )점을 μ–»μŠ΅λ‹ˆλ‹€.
μ„Έ μˆ«μžκ°€ λͺ¨λ‘ κ°™λ‹€λ©΄ (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3 )점을 μ–»μŠ΅λ‹ˆλ‹€.
μ„Έ μ •μˆ˜ a, b, cκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, μ–»λŠ” 점수λ₯Ό return ν•˜λŠ” solution ν•¨μˆ˜λ₯Ό μž‘μ„±ν•΄ μ£Όμ„Έμš”.

 

πŸ“• μ œν•œ 사항

  • a, b, cλŠ” 1이상 6μ΄ν•˜μ˜ μ •μˆ˜μž…λ‹ˆλ‹€.

 

πŸ“ λ‹΅μ•ˆ

class Solution {
    public int solution(int a, int b, int c) {
        int answer = a+b+c;
        if(a==b&&a==c) {
            return answer * (int)(Math.pow(a,2)+Math.pow(b,2)+Math.pow(c,2)) * (int)(Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3));
        } else if (a==b || a==c || b==c) {
            return answer * (int)(Math.pow(a,2)+Math.pow(b,2)+Math.pow(c,2));
        }
        return answer;
    }
}

μ„Έ μˆ«μžκ°€ λͺ¨λ‘ λ™μΌν•˜λ‹€λ©΄ μ„Έ 숫자λ₯Ό λ”ν•œ 값에 2 κ±°λ“­μ œκ³±κ³Ό 3κ±°λ“­μ œκ³±ν•œ 값을 λ”ν•œ 값을 λ¦¬ν„΄ν•˜κ³ 

μ„Έ 숫자 쀑 2개만 λ™μΌν•˜λ‹€λ©΄ μ„Έ 숫자λ₯Ό λ”ν•œ 값에 2 κ±°λ“­μ œκ³± 값을 더해 λ¦¬ν„΄ν•˜κ³ 

λͺ¨λ“  μˆ«μžκ°€ λ‹€λ₯΄λ‹€λ©΄ μ„Έ 숫자λ₯Ό λ”ν•œ 값을 λ¦¬ν„΄ν•œλ‹€.

 

이 λ•Œ κ±°λ“­μ œκ³±μ€ Math.pow() ν•¨μˆ˜λ₯Ό 톡해 λ„μΆœν•΄λƒˆλ‹€.

ν•œκ°€μ§€ μ£Όμ˜ν•  점은 Math.powλŠ” 리턴값이 double ν˜•μ΄κΈ° λ•Œλ¬Έμ— int둜 ν˜•λ³€ν™˜ ν•΄μ•Ό ν•œλ‹€.

 

πŸ’‘ μ°Έκ³ 

  • Math.pow(숫자 λ³€μˆ˜, μ§€μˆ˜) : 숫자 λ³€μˆ˜λ₯Ό μ§€μˆ˜μ— λ§žλŠ” κ±°λ“­μž¬κ³±ν•˜μ—¬ 리턴, 이 λ•Œ 리턴 값은 double νƒ€μž….
728x90