[Python] 프로그래머스 Lv0 - 3

구준희·2023년 8월 4일
0

알고리즘

목록 보기
6/31
post-thumbnail
  1. 수열과 구간 쿼리4
def solution(arr, queries):
    
    for s,e,k in queries:
        for i in range(s, e+1):
            if i%k == 0:
                arr[i] +=1
    return arr
  1. 배열만들기2
def solution(l,r):
    arr = []

    n = [int(bin(x)[2:])*5 for x in range(1,65)]    ##5진수로 바꿈

    for i in n:
        if i>=l and i <= r:
            arr.append(i)
    if arr == []:
        arr.append(-1)
    print(arr)
  1. 카운트 업
def solution(start, end):
    answer = []
    for i in range(start, end+1):
        answer.append(i)

    return answer
  1. 콜라츠 수열 만들기
def solution(n):
    answer = []
    while(True):
        if n != 1:
            if n % 2 == 0:
                answer.append(n)
                n = n/2
                
            elif n % 2 == 1:
                answer.append(n)
                n = 3 *n+1
                
        else:
            answer.append(n)
            break
                
    return answer
  1. 배열만들기4
def solution(arr):
    stk = []
    i=0
    while(True):
        if i >= len(arr):
            break
        elif stk == []:
            stk.append(arr[i])
            i+=1
        elif stk !=[] and stk[-1] < arr[i]:
            stk.append(arr[i])
            i+=1
        elif stk !=[] and stk[-1] >= arr[i]:
            del stk[-1]
    return stk
  1. 간단한 논리연산
def solution(x1, x2, x3, x4):
    
    answer = (x1|x2)&(x3|x4)
    return answer
  1. 주사위게임3
def solution(a, b, c, d):
    nums = [a, b, c, d]
    counts = [nums.count(i) for i in nums]
    if max(counts) == 4:
        return a * 1111
    elif max(counts) == 3:
        p = nums[counts.index(3)]
        q = nums[counts.index(1)]
        return (10 * p + q) ** 2
    elif max(counts) == 2:
        if min(counts) == 2:
            return (a + c) * abs(a - c) if a == b else (a + b) * abs(a - b)
        else:
            p = nums[counts.index(2)]
            return (a * b * c * d) / p**2
    else:
        return min(nums)
  1. 글자 이어붙여 문자열 만들기
def solution(my_string, index_list):
    answer = ''
    
    for i in index_list:
        answer += my_string[i]
        
    return answer
  1. 9로 나눈 나머지
def solution(number):
    answer = int(number)%9
    return answer
  1. 문자열 여러번 뒤집기
def solution(my_string, queries):
    my_list = list(my_string)
    
    for a,b in queries:
        my_list[a:b+1] = list(reversed(my_list[a:b+1]))
    
    answer = "".join(my_list)
    return answer
profile
꾸준히합니다.

0개의 댓글