Algorithm-math.md


  • μ§„μˆ˜, 진법

  • μ΅œμ†Œκ³΅λ°°μˆ˜, μ΅œλŒ€κ³΅μ•½μˆ˜

μ§„μˆ˜μ™€ 진법


  • N μ§„λ²•μœΌλ‘œ λ¬Έμžμ—΄μ„ λ³€ν™˜ν•˜κΈ°

def stoi(s, n):
    ret = 0
    l = len(s)
    for i in range(l): ret += int(s[i]) * n**(l-i-1)
    return ret

=> ν™œμš©

  • κ±°λ“­μ œκ³± μ—°μ‚° baekjoon1629번arrow-up-right

  • 쑰건문 + Nμ§„μˆ˜ λ³€ν™˜ λ°©λ²•μœΌλ‘œ ν•΄κ²° κ°€λŠ₯ doublemulimage

def pow_custom(a, b):
    ret = 1
    while b:
        if b % 2 == 1: ret *= a
        a = a*a
        b //= 2
    return ret
  • 큰 수λ₯Ό κ³±ν•˜λŠ” 것은 Pythonμ—μ„œλ„ 느리기 λ•Œλ¬Έμ— λͺ¨λ“ˆλŸ¬ μ—°μ‚°μžλ₯Ό 쀑간쀑간에 μ“°μž!

μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ μ΅œμ†Œκ³΅λ°°μˆ˜


  • μ΅œλŒ€κ³΅μ•½μˆ˜(GCD) : κ³΅μ•½μˆ˜ 쀑 μ΅œλŒ“κ°’

    • μ΅œλŒ€κ³΅μ•½μˆ˜κ°€ 1이면 μ„œλ‘œμ†Œ

  • μ΅œμ†Œκ³΅λ°°μˆ˜(LCM) : 곡배수 쀑 μ΅œμ†Œκ°’

LCM(A, B) = A * B / GCD(A, B)

=> GCD만 잘 κ΅¬ν•˜λ©΄ LCM은 O(1)에 ꡬ할 수 μžˆλ‹€.

  • μ΅œλŒ€κ³΅μ•½μˆ˜

  • βœ… πŸ˜€μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•

    • μœ„μ˜ 두 방식보닀 훨씬 λΉ λ₯΄λ‹€

GCD(A, B) = GCD(B, A % B)

μ†Œμˆ˜μ™€ μ†ŒμΈμˆ˜λΆ„ν•΄


  • μ—¬λŸ¬κ°€μ§€ μ†Œμˆ˜ νŒλ³„λ²•

μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ 체

eratostenes

Last updated