🌷🌼λͺ¨μ—¬λ΄μš” 개발의숲🌷🌼

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€/JAVA] 숫자 κ²Œμž„ λ³Έλ¬Έ

개발/μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œν’€μ΄ JAVA

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€/JAVA] 숫자 κ²Œμž„

μš”μΌμ΄ 2022. 2. 20. 13:31
λ°˜μ‘ν˜•

문제 μ„€λͺ…

xx νšŒμ‚¬μ˜ 2xNλͺ…μ˜ 사원듀은 Nλͺ…μ”© 두 νŒ€μœΌλ‘œ λ‚˜λˆ  숫자 κ²Œμž„μ„ ν•˜λ €κ³  ν•©λ‹ˆλ‹€. 두 개의 νŒ€μ„ 각각 AνŒ€κ³Ό BνŒ€μ΄λΌκ³  ν•˜κ² μŠ΅λ‹ˆλ‹€. 숫자 κ²Œμž„μ˜ κ·œμΉ™μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • λ¨Όμ € λͺ¨λ“  사원이 λ¬΄μž‘μœ„λ‘œ μžμ—°μˆ˜λ₯Ό ν•˜λ‚˜μ”© λΆ€μ—¬λ°›μŠ΅λ‹ˆλ‹€.
  • 각 사원은 λ”± ν•œ λ²ˆμ”© κ²½κΈ°λ₯Ό ν•©λ‹ˆλ‹€.
  • 각 κ²½κΈ°λ‹Ή AνŒ€μ—μ„œ ν•œ 사원이, BνŒ€μ—μ„œ ν•œ 사원이 λ‚˜μ™€ μ„œλ‘œμ˜ 수λ₯Ό κ³΅κ°œν•©λ‹ˆλ‹€. κ·Έλ•Œ μˆ«μžκ°€ 큰 μͺ½μ΄ μŠΉλ¦¬ν•˜κ²Œ 되고, μŠΉλ¦¬ν•œ 사원이 μ†ν•œ νŒ€μ€ μŠΉμ μ„ 1점 μ–»κ²Œ λ©λ‹ˆλ‹€.
  • λ§Œμ•½ μˆ«μžκ°€ κ°™λ‹€λ©΄ λˆ„κ΅¬λ„ μŠΉμ μ„ 얻지 μ•ŠμŠ΅λ‹ˆλ‹€.

전체 사원듀은 μš°μ„  λ¬΄μž‘μœ„λ‘œ μžμ—°μˆ˜λ₯Ό ν•˜λ‚˜μ”© λΆ€μ—¬λ°›μ•˜μŠ΅λ‹ˆλ‹€. κ·Έλ‹€μŒ AνŒ€μ€ λΉ λ₯΄κ²Œ μΆœμ „μˆœμ„œλ₯Ό μ •ν–ˆκ³  μžμ‹ λ“€μ˜ μΆœμ „ μˆœμ„œλ₯Ό BνŒ€μ—κ²Œ κ³΅κ°œν•΄λ²„λ ΈμŠ΅λ‹ˆλ‹€. BνŒ€μ€ 그것을 보고 μžμ‹ λ“€μ˜ μ΅œμ’… μŠΉμ μ„ κ°€μž₯ λ†’μ΄λŠ” λ°©λ²•μœΌλ‘œ νŒ€μ›λ“€μ˜ μΆœμ „ μˆœμ„œλ₯Ό μ •ν–ˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œμ˜ BνŒ€μ΄ μ–»λŠ” μŠΉμ μ„ κ΅¬ν•΄μ£Όμ„Έμš”.
A νŒ€μ›λ“€μ΄ 뢀여받은 μˆ˜κ°€ μΆœμ „ μˆœμ„œλŒ€λ‘œ λ‚˜μ—΄λ˜μ–΄μžˆλŠ” λ°°μ—΄ A와 i번째 μ›μ†Œκ°€ BνŒ€μ˜ i번 νŒ€μ›μ΄ 뢀여받은 수λ₯Ό μ˜λ―Έν•˜λŠ” λ°°μ—΄ Bκ°€ μ£Όμ–΄μ§ˆ λ•Œ, B νŒ€μ›λ“€μ΄ 얻을 수 μžˆλŠ” μ΅œλŒ€ μŠΉμ μ„ return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

μ œν•œμ‚¬ν•­

  • A와 B의 κΈΈμ΄λŠ” κ°™μŠ΅λ‹ˆλ‹€.
  • A와 B의 κΈΈμ΄λŠ” 1 μ΄μƒ 100,000 μ΄ν•˜μž…λ‹ˆλ‹€.
  • A와 B의 각 μ›μ†ŒλŠ” 1 μ΄μƒ 1,000,000,000 μ΄ν•˜μ˜ μžμ—°μˆ˜μž…λ‹ˆλ‹€.

 

μž…μΆœλ ₯ 예

[5,1,3,7] [2,2,6,8] 3
[2,2,2,2] [1,1,1,1] 0

μž…μΆœλ ₯ 예 #1


A νŒ€μ€ 숫자 5λ₯Ό 뢀여받은 νŒ€μ›μ΄ 첫번째둜 μΆœμ „ν•˜κ³ , μ΄μ–΄μ„œ 1,3,7을 뢀여받은 νŒ€μ›λ“€μ΄ μ°¨λ‘€λŒ€λ‘œ μΆœμ „ν•©λ‹ˆλ‹€.
B νŒ€μ›λ“€μ„ 4번, 2번, 3번, 1번의 μˆœμ„œλŒ€λ‘œ μΆœμ „μ‹œν‚¬ 경우 νŒ€μ›λ“€μ΄ 뢀여받은 μˆ«μžλ“€μ€ μ°¨λ‘€λŒ€λ‘œ 8,2,6,2κ°€ λ©λ‹ˆλ‹€. 그러면, 첫 번째, 두 번째, μ„Έ 번째 κ²½κΈ°μ—μ„œ μŠΉλ¦¬ν•˜μ—¬ 3점을 μ–»κ²Œ 되고, μ΄λ•Œκ°€ μ΅œλŒ€μ˜ μŠΉμ μž…λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #2
B νŒ€μ›λ“€μ„ μ–΄λ–€ μˆœμ„œλ‘œ μΆœμ „μ‹œμΌœλ„ BνŒ€μ˜ μŠΉμ μ€ 0μ μž…λ‹ˆλ‹€.

 

 

 

 public int solution(int[] A, int[] B) {

        int answer = 0;

        Arrays.sort(A);
        Arrays.sort(B);

        int a = 0;
        int b = 0;

        for(int i=0; i<B.length; i++) {
            if (A[a] > B[b]) {
                b++;
            } else if (A[a] == B[b]) {
                b++;
            } else {
                a++;
                b++;
                answer++;
            }
        }

        return answer;
    }
Comments