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

구준희·2023년 8월 6일
0

알고리즘

목록 보기
8/31
post-thumbnail
  1. n번째 원소부터.
def solution(num_list, n):
    return num_list[n-1::]
  1. 순서바꾸기
def solution(num_list, n):
    return num_list[n:] + num_list[:n]
  1. 왼쪽 오른쪽
def solution(str_list):
    answer = []
    
    for i, j in enumerate(str_list):
        if j == "l":
            answer = str_list[:i]
            break
        elif j == "r":
            answer = str_list[i+1:]
            break
    return answer
  1. n번째 원소까지
def solution(num_list, n):
    return num_list[:n]
  1. n개 간격의 원소들
def solution(num_list, n):

    return num_list[::n]
  1. 홀수vs짝수
def solution(num_list):
    return max(sum(num_list[::2]),sum(num_list[1::2]))
  1. 5명씩
def solution(names):
    return names[::5]
  1. 할 일 목록
def solution(todo_list, finished):
    answer = []
    for a,b in zip(todo_list, finished):
        if b == False:
            answer.append(a)
    return answer
  1. n보다 커질 때까지 더하기
def solution(numbers, n):
    answer = 0
    i =0
    
    while(answer <= n):
        answer+= numbers[i]
        i+=1
    return answer
  1. 수열과 구간 쿼리
def solution(arr, queries):
    for a,b in queries:
        for i in range(a,b+1):
            arr[i]+=1
    return arr
  1. 조건에 맞게 수열 변환하기1
def solution(arr):
    answer = []
    for i in range(0,len(arr)):
        if arr[i] >= 50 and arr[i] %2 ==0:
            arr[i] /=2
        elif arr[i] <=50 and arr[i] %2 ==1:
            arr[i] *=2
        
    return arr
  1. 조건에 맞게 수열 변환하기2
def solution(arr):
    arr2 = list(arr)
    result = 0
    while(result<6):
        for i in range(0,len(arr)):
            if arr[i] >= 50 and arr[i] %2 ==0:
                arr[i] /=2
            elif arr[i] <=50 and arr[i] %2 ==1:
                arr[i] = arr[i]*2+1      
        if arr2 == arr:
            break
        else:
            arr2 = list(arr)
            result+=1

    return result
  1. 1로 만들기
def solution(num_list):
    answer = 0
    for i in num_list:
        while i!=1:
            if i % 2 == 0:
                i/=2
                answer +=1
            elif i % 2 == 1:
                i = (i-1)/2
                answer+=1
    return answer
profile
꾸준히합니다.

0개의 댓글