본문 바로가기
WIL&TIL/TIL

20230419 TIL 알고리즘, 비트 쉬프트 연산

by 코드뭉치 2023. 4. 19.

 

합성수 찾기

def solution(n):
    cnt = {}
    answer = n
    for i in range(1,n+1):
        for j in range(1, i+1):
            if i % j == 0:
                try:
                    cnt[i] += 1
                except:
                    cnt[i] = 1
        if cnt[i] <= 2:
            answer -= 1
            
    return answer

 

가장 큰 수 찾기

def solution(array):
    return [max(array),array.index(max(array))]

 

 

외계행성의 나이

def solution(age):
    a = 'abcdefghij'
    b = list(str(age))
    c = [a[int(i)] for i in b]
    return "".join(c)

 

 

N의 배수 고르기

def solution(n, numlist):
	answer = []
    for i in numlist:
        if i % n == 0:
            answer.append(i)
    return answer

 - 리스트 컴프리헨션

def solution(n, numlist):
    return [i for i in numlist if i % n == 0]

 

 

비트 쉬프트 연산

def solution(n, t):
    return n << t
    
왼쪽 시프트 연산자 (<<) : 이진수의 비트를 왼쪽으로 이동시킨다. 
이동한 공간은 0으로 채워진다. 예를 들어, 0b0010 << 1은 0b0100을 반환한다.

오른쪽 시프트 연산자 (>>) : 이진수의 비트를 오른쪽으로 이동시킨다. 
이동한 공간은 부호 비트로 채워진다. 예를 들어, 0b0100 >> 1은 0b0010을 반환한다.

비트 쉬프트 연산자는 특히 비트 단위로 연산을 수행하는 경우에 유용하다.
예를 들어, 특정 비트 위치에 1을 삽입하거나, 비트 위치를 추출하는 등의 작업을 수행할 때 유용

 

댓글