Til

알고리즘 - 파이썬 (제곱 표현, sort함수, list함수, range함수)

dini_dini 2024. 3. 7. 18:33

 

>>박테리아n개가 시간당 2배로증식할때 t시간후 박테리아 수?

 

 
def solution(n,t):
    return n*(2**t#2의 t승
 

 

위에서 n*(2**t)는  n 곱하기 2의 t 제곱

 

-----

>>리스트의 중간값??

 
def solution(array):
    array.sort() #리스트의 중간값을 알기위해 순서대로 정렬 
    return array[len(array)//2]
 

 

array.sort()와 sorted(array)

 

- array.sort() : 주어진 리스트 array 정렬함 , 리스트를 직접 정렬하고 변경함 ->원래의 리스트를 변경

- sorted(array) : 주어진 리스트 array를 정렬한 새로운 리스트를 반환함 -> 원래의 리스트를변경하지 않음//새롭게 정렬된 리스트 반환 

-----------

 

>>n이하의 홀수

 

 # 처음에 작성한것
def solution(n):
    numbers = list (range(1, n+1))
    n_numbers = []
    for num in numbers:
        if num%2 !=0:
            n_numbers.append(num)
    return n_numbers
 

 

레인지 함수를 통해 1부터 엔까지 숫자를 리스트함수를 통해 리스트를 만들어주었음

그리고 2로 나눈 나머지가 0이 아닐때 새로운 엔넘버리스트에 추가

 

위의 코드도 문제는 없었음

 

더짧게 만들어보자

 

 
def solution(n):
    numbers = list(range(1,n+1,2))
    return numbers
 

 

포 문을 빼고 레인지함수 스텝부분에 2를 추가 -> 스타트가 1이므로 2를 추가하면 3 따라서 [1,3,5...]식으로 올라감

 

그럼 더 줄여볼까

 

 
def solution(n):
    return list(range(1,n+1,2))
 

 

리스트를 바로 리턴하는것도 가능 ㅇㅇ