CODING TEST/PROGRAMMERS

[코딩 기초 트레이닝] Python 19일차 (세 개의 구분자, 배열의 원소만큼 추가하기, 빈 배열에 추가 삭제하기, 배열 만들기 6, 무작위로 K개의 수 뽑기)

개발자 만두 2024. 1. 3. 11:29
728x90
반응형

모든 문제는 Python으로 풀이했습니다 ❕

오늘의 문제 5개는 아래와 같습니다 ⤵️

오늘의 문제 5개

 

1. 세 개의 구분자

🔗 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/181862

 

⌨️ 작성한 코드 (Python)

import re

def solution(myStr):
    answer = [s for s in re.split('[a, b, c]', myStr) if s]
    
    return answer if answer else ["EMPTY"]

 

2. 배열의 원소만큼 추가하기

🔗 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/181861

 

⌨️ 작성한 코드 (Python)

def solution(arr):
    answer = []
    
    for n in arr:
        answer += [n for i in range(n)]
    
    return answer

 

3. 빈 배열에 추가, 삭제하기

🔗 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/181860

 

⌨️ 작성한 코드 (Python)

def solution(arr, flag):
    answer = []
    
    for i in range(len(flag)):
        if flag[i]:
            answer += [arr[i] for x in range(arr[i]*2)]
        else:
            answer = answer[:len(answer) - arr[i]]
    
    return answer

 

4. 배열 만들기 6

🔗 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/181859

 

⌨️ 작성한 코드 (Python)

def solution(arr):
    stk = []
    i = 0
    
    while(i < len(arr)):
        if not stk:
            stk.append(arr[i])    
        elif stk[-1] == arr[i]:
            stk.pop()
        else:
            stk.append(arr[i])
        
        i += 1
        
    return stk if stk else [-1]

 

5. 무작위로 K개의 수 뽑기

🔗 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/181858

 

⌨️ 작성한 코드 (Python)

def solution(arr, k):
    answer = []
    
    for i in range(len(arr)):
        if len(answer) >= k:
            break
        if arr[i] not in answer:
            answer.append(arr[i])
    
    if len(answer) < k:
        answer += [-1 for n in range(k-len(answer))]
        
    return answer


코드에 대해 이해 안 가거나

궁금한 내용이 있으신 분은 댓글 남겨주세요!

감사합니다 🤓

 

 

728x90
반응형