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

2022. 1. 14. 10:50·Python/알고리즘 문제풀이

2019 카카오 개발자 겨울 인턴십

문제 풀러 바로가기 👇👇👇👇👇👇

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

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4

programmers.co.kr

 

 

코드

def solution(board, moves):
    answer = 0
    stack = [-1, 0]
    for move in moves:

        for step in range(len(board)):
            if board[step][move-1] != 0:
                stack.append(board[step][move-1])
                board[step][move-1] = 0
                break

        if stack[-2] == stack[-1]:
            answer += 2
            stack.pop()
            stack.pop()


    return answer

문제풀이

stack에 -1, 0 값을 넣어준건 out of range 오류 발생을 사전에 막기 위해 더미값을 넣어둔 것이다.

(만약 더미값을 넣기 싫다면 반복문 안에서 계속 if문을 돌려야하기 때문에 굉장히 비효율적이다.)


각 이동시마다 인형을 뽑으므로, moves를 반복문의 기준으로 삼는다.
2차원 배열이기때문에 그 안에서 반복문을 하나 더 돌려준다.

만약 인형이 있으면 0이 아닌 값이 들어있을 것이다. 그 값을 스택에 넣어주고 0으로 바꿔준다.

break를 통해 꼭 나와줘야한다. 만약 그렇지 않으면 계속해서 같은 칸의 인형을 모두 뽑아버린다.

 

마지막으로 배열 맨 뒤의 값 2개를 확인한다. 만약 같다면 그 인형을 터트려주면 된다.

(answer값 2만큼 늘려주고, 스택에서 제거하기)

'Python/알고리즘 문제풀이' 카테고리의 다른 글
  • [백준][파이썬] DFS와 BFS
  • [프로그래머스 연습문제] 약수의 개수와 덧셈
  • [프로그래머스 연습문제][Python] Lv.1 신고 결과 받기
  • [프로그래머스 연습문제][Python] Lv.1 키패드 누르기
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (203)
      • Spring (23)
        • Spring (10)
        • Spring Boot (7)
        • Spring Security (1)
        • Hibernate (4)
      • Test (3)
      • 끄적끄적 (6)
      • 활동 (35)
        • 부스트캠프 (23)
        • 동아리 (3)
        • 컨퍼런스 (3)
        • 글또 (5)
        • 오픈소스 컨트리뷰션 (1)
      • 디자인패턴 (0)
      • Git & GitHub (22)
        • Git (13)
        • Github Actions (1)
        • 오류해결 (5)
        • 기타(마크다운 등) (3)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • Infra (2)
        • Docker (1)
        • Elastic Search (0)
        • Jenkins (1)
        • AWS (1)
      • MySQL (7)
        • 기초 (6)
        • Real MySQL (1)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • CS (26)
        • 웹 기본지식 (0)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
        • 시스템 프로그래밍 (0)
        • 기타 (0)
      • Tools (1)
        • 이클립스 (1)
        • IntelliJ (0)
      • 프로젝트 (1)
        • 모여모여(부스트캠프) (1)
      • JAVA (32)
        • Maven (6)
        • 오류해결 (11)
        • 자바 클래스&메소드 (1)
        • JSP & Servlet (12)
      • Javascript (5)
        • 기초 (3)
        • React (2)
      • Python (28)
        • 파이썬 함수 (9)
        • 알고리즘 문제풀이 (16)
        • 데이터 사이언스 (2)
        • 웹 크롤링 (1)
      • 단순정보전달글 저장소 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

    java
    부스트캠프 7기
    자바스크립트
    파이썬
    GitHub
    웹개발
    MySQL
    스프링부트
    Git
    jsp
    부스트캠프
    Python
    스프링
    운영체제
    오류해결
    Spring
    자바
    os
    알고리즘
    부스트캠프 멤버십
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
gakko
[프로그래머스 연습문제][Python] Lv.1 크레인 인형뽑기 게임
상단으로

티스토리툴바