본문 바로가기

Algorithm/자료구조

(Python3) - 프로그래머스(코딩 기초 트레이닝) : 스택으로 큐 구현

반응형

https://school.programmers.co.kr/learn/courses/11133/lessons/71158

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

stack으로 queue를 구현하는 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

1. func_a: stack이 비어있으면 error를 아니라면 가장 위의 원소를 pop한 뒤 해당 원소를 반환합니다.2. func_b: stack1의 원소들을 stack2로 옮깁니다.3. func_c: 인자로 받은 stack이 비어있는지 여부를 반환합니다.4.정답 변수 answer를 선언해줍니다.

📔 풀이과정

1. stack2가 비어있다면 func_b를 수행합니다.2. func_a를 수행해 answer에 stack2의 가장 위의 원소를 pop해 가져와 저장합니다.

📔 정답 출력 | 반환

answer를 반환합니다.


📕 Code

📔 Python3

def func_a(stack):
    return stack.pop()

def func_b(stack1, stack2):
    while not func_c(stack1):
        item = func_a(stack1)
        stack2.append(item)

def func_c(stack):
    return (len(stack) == 0)

def solution(stack1, stack2):
    if func_c(stack2):
        func_b(stack1, stack2)
    answer = func_a(stack2)
    return answer

# 아래는 테스트케이스 출력을 해보기 위한 코드입니다.
stack1_1 = [1,2]
stack2_1 = [3,4]
ret1 = solution(stack1_1, stack2_1)

# [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret1, "입니다.")

stack1_2 = [1,2,3]
stack2_2 = []
ret2 = solution(stack1_2, stack2_2)

# [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret2, "입니다.")

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.