Programmers lv-1

삼총사 - Java [μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅]

κ·€ν”Όν‚€ 2022. 12. 13. 11:36

 

❀️ Problem

더보기
  • 문제
    ν•œκ΅­μ€‘ν•™κ΅μ— λ‹€λ‹ˆλŠ” ν•™μƒλ“€μ€ κ°μž μ •μˆ˜ λ²ˆν˜Έλ₯Ό κ°–κ³  μžˆμŠ΅λ‹ˆλ‹€. μ΄ ν•™κ΅ ν•™μƒ 3λͺ…μ˜ μ •μˆ˜ λ²ˆν˜Έλ₯Ό λ”ν–ˆμ„ λ•Œ 0이 λ˜λ©΄ 3λͺ…μ˜ ν•™μƒμ€ μ‚Όμ΄μ‚¬λΌκ³  ν•©λ‹ˆλ‹€. μ˜ˆλ₯Ό λ“€μ–΄, 5λͺ…μ˜ ν•™μƒμ΄ μžˆκ³ , κ°κ°μ˜ μ •μˆ˜ λ²ˆν˜Έκ°€ μˆœμ„œλŒ€λ‘œ -2, 3, 0, 2, -5일 λ•Œ, μ²« λ²ˆμ§Έ, μ„Έ λ²ˆμ§Έ, λ„€ λ²ˆμ§Έ ν•™μƒμ˜ μ •μˆ˜ λ²ˆν˜Έλ₯Ό λ”ν•˜λ©΄ 0μ΄λ―€λ‘œ μ„Έ ν•™μƒμ€ μ‚Όμ΄μ‚¬μž…λ‹ˆλ‹€. λ˜ν•œ, λ‘ λ²ˆμ§Έ, λ„€ λ²ˆμ§Έ, λ‹€μ„― λ²ˆμ§Έ ν•™μƒμ˜ μ •μˆ˜ λ²ˆν˜Έλ₯Ό λ”해도 0μ΄λ―€λ‘œ μ„Έ ν•™μƒλ„ μ‚Όμ΄μ‚¬μž…λ‹ˆλ‹€. λ”°λΌμ„œ μ΄ κ²½μš° ν•œκ΅­μ€‘ν•™κ΅μ—μ„œλŠ” λ‘ κ°€μ§€ λ°©λ²•μœΌλ‘œ μ‚Όμ΄μ‚¬λ₯Ό λ§Œλ“€ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

    ν•œκ΅­μ€‘ν•™κ΅ ν•™μƒλ“€μ˜ λ²ˆν˜Έλ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜ λ°°μ—΄ numberκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, ν•™μƒλ“€ μ€‘ μ‚Όμ΄μ‚¬λ₯Ό λ§Œλ“€ μˆ˜ μžˆλŠ” λ°©λ²•μ˜ μˆ˜λ₯Ό return ν•˜λ„둝 solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•˜μ„Έμš”.

  • μ œν•œ 사항
    • 3 ≤ number의 κΈΈμ΄ ≤ 13
    • -1,000 ≤ number의 각 μ›μ†Œ ≤ 1,000
    • μ„œλ‘œ λ‹€λ₯Έ ν•™μƒμ˜ μ •μˆ˜ λ²ˆν˜Έκ°€ 같을 수 μžˆμŠ΅λ‹ˆλ‹€.

 

  • μž…μΆœλ ₯ 예 & μ„€λͺ…
no number result
1 [-2, 3, 0, 2, -5] 2
2 [-3, -2, -1, 0, 1, 2, 3] 5
3 [-1, 1, -1, 1] 0
  1. 문제 μ˜ˆμ‹œμ™€ κ°™μŠ΅λ‹ˆλ‹€.
  2. ν•™μƒλ“€μ˜ μ •μˆ˜ λ²ˆν˜Έ μŒ (-3, 0, 3), (-2, 0, 2), (-1, 0, 1), (-2, -1, 3), (-3, 1, 2) μ΄ μ‚Όμ΄μ‚¬κ°€ λ  μˆ˜ μžˆμœΌλ―€λ‘œ, 5λ₯Ό return ν•©λ‹ˆλ‹€.
  3. 삼총사가 λ  μˆ˜ μžˆλŠ” λ°©λ²•μ΄ μ—†μŠ΅λ‹ˆλ‹€.

 


 

πŸ’› Solution

풀이

class Solution {
    public int solution(int[] number) {
        int answer = 0;
        for(int i=0; i<number.length-2; i++){
            for(int j=i+1; j<number.length-1; j++){
                for(int k=j+1; k<number.length; k++){
                    if(number[i]+number[j]+number[k]==0) {
                        answer++;
                    }
                }
            }
        }
        return answer;
    }
}

 

μ²˜λ¦¬μ†λ„ VERY GOODπŸ’ž


 


 

πŸ’œ Comment

이 λ¬Έμ œλŠ” for 반볡문 3쀑첩을 μ‚¬μš©ν•΄μ„œ ν’€ 수 μžˆμ—ˆλ‹€.

첫 번째 for문은 i=0;으둜 μ‹œμž‘ν•˜κ³  i<number.length-2;κΉŒμ§€μ˜ λ²”μœ„λ₯Ό μ§€μ •ν–ˆλ‹€. κ·Έ μ΄μœ λŠ” 인덱슀 0λ²ˆλΆ€ν„° μ‹œμž‘ν•˜λ˜ λ‘λ²ˆμ§Έ forλ¬Έκ³Ό μ„Έλ²ˆμ§Έ forλ¬ΈκΉŒμ§€ 이어지기 μœ„ν•œ λ²”μœ„λ₯Ό μ§€μ •ν•˜κΈ° μœ„ν•΄μ„œ μ˜€λ‹€. 그리고 μ•žμ—μ„œλΆ€ν„° 순차적으둜 λ²”μœ„λ₯Ό μ„€μ •ν•΄μ•Ό μˆœμ„œκ°€ μ„žμ΄μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ‘λ²ˆμ§Έ forλ¬Έμ—μ„œλŠ” j=i; j<number.length-1;둜 λ²”μ£Όλ₯Ό μ„€μ •ν–ˆμœΌλ©° μ„Έλ²ˆμ§Έ for문도 λ™μΌν•œ 이유둜 k=j; k<number.length;λ₯Ό μ§€μ •ν–ˆλ‹€. μˆœμ„œκ°€ μ„žμ΄κ²Œ 되면 쀑볡이 λ°œμƒν•  수 있기 λ•Œλ¬Έμ΄λ‹€.

μ΄λ ‡κ²Œ λ²”μœ„λ₯Ό μ„€μ •ν•œ λ‹€μŒμ— number[i]+number[j]+number[k]의 값이 0이 λ˜λŠ”μ§€λ₯Ό κ²€μ‚¬ν•΄μ„œ ν•΄λ‹Ήν•˜λŠ” 경우만 answer++;ν•˜λ„λ‘ κ΅¬ν˜„ν–ˆλ‹€.

 

 

9009μœ„πŸ’«