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

구준희·2023년 8월 3일
0

알고리즘

목록 보기
5/31
post-thumbnail
  1. 코드 처리하기
def solution(code):
    answer = ''
    mode = 0
    for idx, alphabet in enumerate(code):

        if alphabet == '1':
            mode = 1 - mode
            continue

        if mode == 0 and idx % 2 == 0:
            answer += alphabet
        elif mode == 1 and idx % 2 == 1:
            answer += alphabet

    if answer == "":
        answer = "EMPTY"
    return answer
  1. 등차수열의 특정 항만 구하기
def solution(a, d, included):
    answer = 0
    for idx, alpha in enumerate(included):
        if alpha == True:
            answer += a+d*(idx)  
    return answer
  1. 주사위게임2
def solution(a, b, c):
    answer = 0
    
    result = a+b+c
    result2 = a**2 + b**2 + c**2
    result3 = a**3 + b**3 + c**3
    
    if a != b != c != a:
        answer = result
    elif a == b == c:
        answer= (result) * (result2) * (result3)
    else:
        answer = (result) * (result2)
    return answer

or

  check=len(set([a,b,c]))	//동일 값 추출하던지
  1. 원소들의 곱과 합
def solution(num_list):
    answer = 0
    result = 1
    result2 = 0
    for i in num_list:
        result *= i
        result2 += i

    if result > result2**2:
        answer = 0
    else:
        answer = 1
    return answer
  1. 이어붙인 수
def solution(num_list):
    a =""
    b =""
    answer = 0
    for i in num_list:
        if i %2 == 0:
            a+=str(i)
        elif i%2 == 1:
            b+=str(i)
    answer = int(a)+int(b)
    return answer
  1. 마지막 두 원소
def solution(num_list):
    answer = num_list
    res=0
    i = len(num_list)-1
    if num_list[i] > num_list[i-1]:
        res = num_list[i]-num_list[i-1]
    else:
        res = num_list[i]*2
        
    answer.append(res)
    
    return answer
  1. 수 조작하기
def solution(n, control):
    
    for i in control:
        if i == "w":
            n+= 1
        elif i == "s":
            n-= 1
        elif i == "d":
            n+=10
        elif i == "a":
            n-=10
        
    return n
  1. 수 조작하기 2
def solution(numLog):
    answer =""
    num = len(numLog)-1

    for i in range(0,num):
        num = numLog[i+1] - numLog[i]
        if num == 1:
            answer += "w"
        elif num == -1:
            answer += "s"
        elif num == 10:
            answer += "d"
        elif num == -10:
            answer += "a"
    return answer
  1. 수열과 구간 쿼리3
def solution(arr, queries):
    for i, b in enumerate(queries):
        j = b[0]
        k = b[1]
        arr[j],arr[k] = arr[k],arr[j]
    return arr
  1. 수열과 구간 쿼리2
    -> 좀 더 간단하게 하는 방법 찾아보기..
def solution(arr, queries):
    answer = []
    for a,b,c in enumerate(queries):
        arr2 = []
        for i, alpha in enumerate(arr):
            num = 0
            if i>= a and i<=b and alpha > c:
                num+=1
                arr2.append(alpha)
        if not arr2:
            arr2.append(-1)
        answer.append(min(arr2))
    return answer
profile
꾸준히합니다.

0개의 댓글