아이공의 AI 공부 도전기

[프로그래머스]  Level 1 :  크레인 인형뽑기 게임 (Python)

 

     

 

 

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

 

프로그래머스

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

programmers.co.kr

코드 링크

https://github.com/stellaluminary/Programmers

 

GitHub - stellaluminary/Programmers

Contribute to stellaluminary/Programmers development by creating an account on GitHub.

github.com

Python

 

방법 1 

 

열별 dict list를 활용하여 구한 코드

 

def solution(board, moves):
    stack = []
    answer = 0
    row = len(board)
    col = len(board[0])
    d = {i: [] for i in range(1, col + 1)}

    for i in range(row):
        for j in range(col):
            d[j + 1].append(board[i][j])

    for k in moves:
        if sum(d[k]) == 0:
            continue
        for j in range(len(d[k])):
            if d[k][j] == 0:
                continue
            else:
                if stack and stack[-1] == d[k][j]:
                    answer += 2
                    stack.pop()
                else:
                    stack.append(d[k][j])
                d[k][j] = 0
                break

    return answer

 

방법 2 

 

방법 1 dict 없이 바로 구한 코드

 

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

    for i in moves:
        for j in range(len(board)):
            if board[j][i-1] != 0:
                if stack and stack[-1] == board[j][i-1]:
                    stack.pop(-1)
                    answer += 2
                else:
                    stack.append(board[j][i - 1])
                board[j][i - 1] = 0
                break
    return answer

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading