본문 바로가기
코딩 테스트/프로그래머스

[프로그래머스 - Python] Lv.1 크레인 인형뽑기 게임

by 오엥?은 2023. 2. 3.
반응형
  • 문제

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

 

프로그래머스

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

programmers.co.kr

 

  • 풀이
def solution(board, moves):
    
    answer = []
    for y in moves:
        for x in range(0, len(board)):
            a1 = board[x][y - 1]
            if a1 != 0:
                answer.append(a1)
                board[x][y - 1] = 0
                break

    answer2 = []
    for i in answer:
        answer2.append(i)
        if len(answer2) > 1:
            if answer2[-1] == answer2[-2]:
                answer2.pop()
                answer2.pop()

    answer3 = len(answer) - len(answer2)
    
    return answer3

answer 은 moves 대로 숫자 뽑은 숫자 담는 리스트

0이 아닌 숫자를 answer 에 추가하고 한 번 뽑힌 숫자(인형)는 0 으로 바꿨다.

그리고 break 거니까 [4, 3, 1, 1, 3, 2, 4] 잘 나왔다.

 

answer2 는 중복되는 숫자 뽑아버리는 리스트

answer 을 반복문 돌리면서 요소가 두 개 이상이 됐을 때 끝에 두 개가 같으면 둘 다 지워버리는 걸로 pop() 두 번

[4, 2, 4] 나왔다.

 

answer3 은 answer 과 answer2 의 길이 차이

그러면 사라진 인형의 수가 나온다.

  

반응형