λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ’»/Algorithm

μ΅œλŒ€ κ³΅μ•½μˆ˜_μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•

: 2개의 μžμ—°μˆ˜ λ˜λŠ” μ •μ‹μ˜ μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ˜ ν•˜λ‚˜μ΄λ‹€.

 

ν˜Έμ œλ²•μ΄λž€ 말은 두 μˆ˜κ°€ μ„œλ‘œ μƒλŒ€λ°© 수λ₯Ό λ‚˜λˆ„μ–΄μ„œ κ²°κ΅­ μ›ν•˜λŠ” 수λ₯Ό μ–»λŠ” μ•Œκ³ λ¦¬μ¦˜μ„ λ‚˜νƒ€λ‚Έλ‹€.

 

2개의 μžμ—°μˆ˜ a, b에 λŒ€ν•΄μ„œ aλ₯Ό b둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό r이라 ν•˜λ©΄(단, a>b),

a와 b의 μ΅œλŒ€κ³΅μ•½μˆ˜λŠ” b와 r의 μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ κ°™λ‹€.

이 μ„±μ§ˆμ— 따라, bλ₯Ό r둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€ r’λ₯Ό κ΅¬ν•˜κ³ , λ‹€μ‹œ r을 r’둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό κ΅¬ν•˜λŠ” 과정을 λ°˜λ³΅ν•˜μ—¬ λ‚˜λ¨Έμ§€κ°€ 0이 λ˜μ—ˆμ„ λ•Œ λ‚˜λˆ„λŠ” μˆ˜κ°€ a와 b의 μ΅œλŒ€κ³΅μ•½μˆ˜μ΄λ‹€.

 

    private static int gcd(int a, int b) {
        if (b == 0)
            return a;
        return gcd(b, a % b);
    }

 

'πŸ’» > Algorithm' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

νž™(Heap)  (0) 2022.06.12
μ†Œμˆ˜_μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ 체  (0) 2022.06.12
char to int / ASCII CODE  (0) 2022.04.19
μ™„μ „ 탐색/DFS/BFS  (0) 2022.04.13
Stack/Queue/Deque/PriorityQueue  (0) 2022.04.11