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

구준희·2023년 8월 15일
0

알고리즘

목록 보기
11/31
post-thumbnail
  1. x 사이의 개수.ipynb
def solution(myString):
    answer = []
    res = 0
    for i in myString:
        if i == "x":
            answer.append(res)
            res = 0
        else:
            res +=1
    answer.append(res)
    return answer

split 사용

def solution(myString):
    return [len(i) for i in myString.split('x')]
  1. 문자열 잘라서 정렬하기

join 이용

def solution(myString):
    answer = list(myString.split("x"))
    return sorted(' '.join(answer).split())

or

def solution(myString):
    answer = list(myString.split("x"))
    return sorted(i for i in answer if i)
  1. 간단한 식 계산하기

eval() 함수 사용하기

def solution(binomial):
    return eval(binomial)
  1. 문자열 바꿔서 찾기
def solution(myString, pat):
    answer = 0
    result = ""
    for i in myString:
        if i == "A":
            result += i.replace("A", "B")
        elif i == "B":
            result += i.replace("B", "A")
    if result.find(pat) != -1:
        return 1
    else:
        return 0
  1. rn_string
def solution(rny_string):
    return rny_string.replace("m","rn")
  1. 세 개의 구분자
def solution(myStr):
    a = "".join(list(myStr.replace("b"," ")
    .replace("a"," ")
    .replace("c", " "))).split()
    if a == []:
        return ["EMPTY"]
    else:
        return a
  1. 배열의 원소만큼 추가하기
def solution(arr):
    return [i for i in arr for j in range(i)]
  1. 빈 배열에 추가, 삭제하기
def solution(arr, flag):
    answer = []
    for idx, a in enumerate(flag):
        if a:
            for i in range(arr[idx]*2):
                answer.append(arr[idx])
        else:
            for i in range(arr[idx]):
                answer.pop()
    return answer
  1. 배열 만들기6
def solution(arr):
    answer = []
    i=0
    while i<len(arr):
        if not answer:
            answer.append(arr[i])

        elif answer[-1] == arr[i]:
            answer.pop()

        elif answer[-1] != arr[i]:
            answer.append(arr[i])
            
        i += 1
    return answer or [-1]
  1. 무작위로 k개의 수 뽑기
def solution(arr, k):
    answer = []
    
    for i, a in enumerate(arr):
        if arr[i] not in answer:
            answer.append(arr[i])
            if len(answer) == k:
                break

            
    if len(answer) < k:
        for i in range(k-len(answer)):
            answer.append(-1)
    return answer
profile
꾸준히합니다.

0개의 댓글