Code Kata | day11 ,12 complex_number_multiply, reverse_strings

juri·2021년 8월 3일
0

Code Kata

목록 보기
11/15
post-thumbnail

Q. 두 개의 input에는 복소수(complex number)가 string 으로 주어집니다. 복소수란 a+bi 의 형태로, 실수와 허수로 이루어진 수입니다.

input으로 받은 두 수를 곱해서 반환해주세요.

☑️ 0차

  1. +를 기준으로 실수, 허수부분 분리
  2. 숫자만 가져와서 결과값의 계수 계산
  3. 다시 복소수 형태로 변환

☑️ 1차 (pass)

def complex_number_multiply(a,b):

    a,b = a.split('+'),b.split('+')
    a1,b1 = a[0],b[0]
    a2,b2 = a[1][:-1],b[1][:-1]

    x = eval(a1+'*'+b1+'-'+a2+'*'+b2)
    y = eval(a1+'*'+b2+'+'+a2+'*'+b1)
   
    return f'{x}+{y}i'

Review

  • 인덱스 슬라이싱 한 반환값이 str타입인 것에서 착안, eval함수를 사용해보았다. 모든 숫자를 int타입으로 바꾸는 코드와 길이가 많이 차이나지 않는다.

☑️ 2차 (pass)

def complex_number_multiply2(a, b):
    
    a1,a2 = map(int, a[:-1].split('+'))
    b1,b2 = map(int, b[:-1].split('+'))

    return f'{a1*b1-a2*b2}+{a1*b2+a2*b1}i' 

수정

  • 인덱스 슬라이싱 후 split메소드 사용
    출력형태 : 1+2i --> [ 1, 2 ]
a = 1+2i
x,y = a[:-1].split('+')

#x = 1, y = 2
  • map함수를 이용해 iterable의 각 요소에 int함수 적용

Q. 문자로 구성된 배열을 input으로 전달하면, 문자를 뒤집어서 return 해주세요.

☑️ code

def reverse_string(s):
    s.reverse()
    return s

Review

  • reverse메소드는 주어진 리스트의 배열을 역순으로 다시 배열한다.
  • 이와 비교해서, 인덱스 슬라이싱은 주어진 리스트를 역순으로 배열한 새로운 리스트를 만들어 반환한다.
profile
Make my day !

0개의 댓글