프로그래밍 이야기/파이썬 코딩 테스트 스터디

파이썬 코딩테스트 스터디 3주차 #7 - 추천 문제 - 스택

hoony926 2024. 8. 29. 16:28

 

 

추천 문제 1. 같은 숫자는 싫어

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

 

프로그래머스

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

programmers.co.kr

 

 

내 풀이

def solution(arr):
    answer = []
    # [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
    print('Hello Python')
    for i in range(len(arr)):
        if i!=0 : 
            if arr[i]!=arr[i-1]:
                answer.append(arr[i])
        else:
            answer.append(arr[i])
            
    return answer

 

다른 사람 풀이

def solution(arr):
    answer = []
 
    for i in arr:
        
        if answer[-1:] == [i]: continue
        
        answer.append(i)   
        
    return answer

 

 

추천 문제 2. 올바른 괄호

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

 

프로그래머스

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

programmers.co.kr

 

 

내가 작성한 답.

def solution(s):
    answer = True
    
    # [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

    stack = []
    for i in s :
        if not stack and i==")":
            return False
        elif i==")":
            stack.pop()
        else:
            stack.append("(")
    if stack :
        return False
    
    return True

 

 

 

추천 문제 3. 컨트롤 제트

def solution(s):
    answer = 0
    arr = s.split()
    print(arr)
    #['1', '2', 'Z', '3']
    for i in range(len(arr)):
        if arr[i]!='Z':
            answer+=int(arr[i])
        else:
            answer=answer-int(arr[i-1])
        
    return answer