🔗 문제 링크

https://programmers.co.kr/learn/courses/30/lessons/64061


👨🏻‍💻 내가 작성한 코드

#basket에서 인형을 삭제할지 판단하는 함
def determinator(answer, basket):
    if(basket[-1] == basket[-2]):
        basket.pop()
        basket.pop()
        answer += 2
        return answer
    else: 
        return answer

#각각의 칸에서 가장 높은 곳에 있는 인형을 찾는 함수
def find_top(board, m):
    for height in range(len(board)):
        if board[height][m] == 0:
            continue
        else: 
            temp_v = board[height][m]
            board[height][m] = 0
            return temp_v
    
    

def solution(board, moves):
    answer = 0
    basket = [] 
    #크레인으로 옮긴 인형이 쌓일 임시 리스트
    
    for m in moves:
        top = find_top(board, m-1)
        if top is not None:
            basket.append(top)
            if len(basket) > 1:   
                answer = determinator(answer, basket)
        
    return answer

👨🏻‍💻 다른 사람의 풀이

def solution(board, moves):
    stacklist = []
    answer = 0

    for i in moves:
        for j in range(len(board)):
            if board[j][i-1] != 0:
                stacklist.append(board[j][i-1])
                board[j][i-1] = 0

                if len(stacklist) > 1:
                    if stacklist[-1] == stacklist[-2]:
                        stacklist.pop(-1)
                        stacklist.pop(-1)
                        answer += 2     
                break

    return answer

📝 결론

코딩 테스트 문제를 처음 풀다 보니 간단한 문제를 복잡하게 풀려고 한 것 같다.
또한 문제를 풀며 언어의 기초 지식부터 익혀둬야 한다는 것을 깨달았다.
몇 개의 문제를 더 풀며 기초 코드들을 확실하게 익히고 여러 알고리즘을 공부하며 코딩 테스트 준비를 더욱 열심히 해야 할 것 같다.

profile
블로그 이전했습니다. -> https://seongwon.dev/

0개의 댓글