λ κ°μ inputμλ 볡μμ(complex number)κ° string μΌλ‘ μ£Όμ΄μ§λλ€. 볡μμλ a+bi μ ννλ‘, μ€μμ νμλ‘ μ΄λ£¨μ΄μ§ μμ
λλ€.
inputμΌλ‘ λ°μ λ μλ₯Ό κ³±ν΄μ λ°νν΄μ£ΌμΈμ. λ°ννλ ννλ 볡μμ ννμ string μ΄μ΄μΌ ν©λλ€.
볡μμ μ μμ μνλ©΄ (i^2)λ -1 μ΄λ―λ‘ (i^2) μΌλλ -1λ‘ κ³μ°ν΄μ£ΌμΈμ.
μ κ³± ννμ΄ μ λμ΄ iμ 2μ κ³±μ (i^2)λΌκ³ νννμ΅λλ€.
μμ 1:
Input: "1+1i", "1+1i" Output: "0+2i" μ€λͺ
: (1 + i) * (1 + i) = 1 + i + i + i^2 = 2i 2iλ₯Ό 볡μμ ννλ‘ λ°κΎΈλ©΄ 0+2i.
μμ 2:
Input: "1+-1i", "1+-1i" Output: "0+-2i" μ€λͺ
: (1 - i) * (1 - i) = 1 - i - i + i^2 = -2i, -2iλ₯Ό 볡μμ ννλ‘ λ°κΎΈλ©΄ 0+-2i.
μμ 3:
Input: "1+3i", "1+-2i" Output: "7+1i" μ€λͺ
: (1 + 3i) * (1 - 2i) = 1 - 2i + 3i -6(i^2) = 1 + i + 6, 7+iλ₯Ό 볡μμ ννλ‘ λ°κΎΈλ©΄ 7+1i.
κ°μ
inputμ νμ a+bi ννμ
λλ€. outputλ a+bi ννλ‘ λμμΌ ν©λλ€
def complex_number_multiply(a, b):
num_list = list(map(int, ("".join(a.split("i"))).split("+") + ("".join(b.split("i"))).split("+")))
answer1 = (num_list[0]*num_list[2]) - (num_list[1]*num_list[3])
answer2 = (num_list[0]*num_list[3]) + (num_list[1]*num_list[2])
return f"{answer1}+{answer2}i"
λ¬Έμλ‘ κ΅¬μ±λ λ°°μ΄μ inputμΌλ‘ μ λ¬νλ©΄, λ¬Έμλ₯Ό λ€μ§μ΄μ return ν΄μ£ΌμΈμ.
μλ‘μ΄ λ°°μ΄μ μ μΈνλ©΄ μ λ©λλ€.
μΈμλ‘ λ°μ λ°°μ΄μ μμ ν΄μ λ§λ€μ΄μ£ΌμΈμ.
Input: ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
Input: ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]
def reverse_string(s):
return s[::-1]
μμλ‘ μ΄λ£¨μ΄μ§ m x n 그리λλ₯Ό μΈμλ‘ λ립λλ€. μλ¨ μΌμͺ½μμ μμνμ¬, νλ¨ μ€λ₯Έμͺ½κΉμ§ κ°λ κΈΈμ μμλ₯Ό λ€ λνμ λ,κ°μ₯ μμ ν©μ μ°Ύμμ return ν΄μ£ΌμΈμ.
ν μ§μ μμ μ°μΈ‘μ΄λ μλλ‘λ§ μ΄λν μ μμ΅λλ€.
Input: [ [1,3,1], [1,5,1], [4,2,1] ]
Output: 7
μ€λͺ : 1β3β1β1β1 μ ν©μ΄ μ μΌ μμ
def min_path_sum(grid):
width = len(grid[0])
height = len(grid)
for i in range(width-1):
grid[0][i+1] += grid[0][i]
for j in range(height-1):
grid[j+1][0] += grid[j][0]
for i in range(width-1):
for j in range(height-1):
grid[i+1][j+1] += min(grid[i][j+1], grid[i+1][j])
return grid[-1][-1]
μ£Όμ΄μ§ μ«μ λ°°μ΄μμ, 0μ λ°°μ΄μ λ§μ§λ§μͺ½μΌλ‘ μ΄λμμΌμ£ΌμΈμ. μλ μλ μ«μμ μμλ λ°κΎΈμ§ λ§μμ£ΌμΈμ.
μλ‘μ΄ λ°°μ΄μ μμ±ν΄μλ μ λ©λλ€.
Input: [0,1,0,3,12]
Output: [1,3,12,0,0]
def move_zeroes(nums):
for i in nums:
if i == 0:
nums.append(nums.pop(nums.index(i)))
return nums
μ¬κ· μκ³ λ¦¬μ¦
μ€λμ μ¬κ·μκ³ λ¦¬μ¦μ λν λ¬Έμ μ
λλ€. μ¬κ·(recursion)λ, μμ μ μ μν λ μκΈ° μμ μ νΈμΆνλ λ°©λ²μ λ»ν©λλ€. νλ‘κ·Έλλ°μ ν¨μμ μμμ λ§μ΄ μ¬μ©λ©λλ€.
μ)
def countdown(n):
print(n)
countdown(n-1)
countdown(10);
def countdown(n):
print(n)
countdown(n-1)
countdown(10);
countdown ν¨μλ λ°μ μΈμλ₯Ό μΆλ ₯ν©λλ€. κ·Έλ°λ° μμ ν¨μλ₯Ό μ€ννλ©΄ 10μμ μμν΄μ 무νμΌλ‘ λ§μ΄λμ€ κ°κΉμ§ λ΄λ €κ°λλ€.
κ·Έλμ μ¬κ·ν¨μλ μλμ μ μ°¨κ° κΌ νμν©λλ€. μΈμ λ©μΆκ²μΈκ°?
μλ₯Ό κ³ λ €ν΄ 0μ΄ λλ©΄ λμ΄μ μ¬κ·λ₯Ό μ΄μ΄λκ°μ§ μλλ‘ μ’ λ£ μ‘°κ±΄μ μΆκ°νκ² μ΅λλ€.
def countdown(n):
print(n)
if (n == 0):
return None
countdown(n-1)
countdown(10);
def countdown(n):
print(n)
if (n == 0):
return None
countdown(n-1)
countdown(10);
μ¬κ·μ μ΄λ‘ μ μμ κ°μ΄ μμ£Ό κ°λ¨ν©λλ€. μ¬κ·λ₯Ό λ 곡λΆνκ³ μΆμ λΆμ μΈν°λ·μ μ¬κ· λ¬Έμ λ₯Ό μ°Ύμ λ νμ΄λ³΄μ
λ μ’κ³ , μκ³ λ¦¬μ¦ μ±
μμ μ¬κ· λΆλΆλ§ λ μ½μΌμ
λ μ’μ΅λλ€.
λ¬Έμ
μ¬κ·λ₯Ό μ¬μ©νμ¬ ν©ν 리μΌ(factorial)μ ꡬνλ ν¨μλ₯Ό ꡬνν΄μ£ΌμΈμ. ν©ν 리μΌμ΄λ 1μμλΆν° nκΉμ§μ μ μλ₯Ό λͺ¨λ κ³±νκ²μ λ§ν©λλ€.
1! = 1 2! = 1 2 5! = 1 2 3 4 * 5
def factorial(n):
if n <= 1:
return 1
return n * factorial(n-1)