반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- Linux
- DPDK
- docker
- 카카오
- Kakao
- 네트워크
- 엘라스틱서치
- 백엔드
- 리눅스
- 스프링
- 스프링부트
- 캐시
- Elasticsearch
- 자바
- 프로그래머스 #카카오 #IT #코딩테스트
- Spring
- C
- springboot
- 쿠버네티스
- 파이썬
- 운영체제
- 도커
- 개발자
- 프로그래머스
- programmers
- Java
- 알고리즘
- 코딩테스트
- IT
- Python
Archives
- Today
- Total
저고데
[프로그래머스]크레인 인형뽑기 게임 본문
728x90
반응형
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/64061
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
본 문제를 요약하자면 다음과 같다.
인형이 어떻게 쌓여있는지 나타내는 배열인 board가 주어지고 크레인의 이동 순서를 나타내는 배열인 moves가 주어진다.
크레인이 이동한 곳에 인형이 있다면 인형을 일렬로 쌓는다.
일렬로 쌓은 인형 중에서 동일한 인형 두 개가 연속으로 있으면 인형을 제거하는데, 제거된 인형의 개수를 반환하는 것이다.
코드를 작성하기 위한 순서는 다음과 같다.
1. 크레인이 이동하였을 때, 인형이 있으면 새로운 배열에 넣어준다.
2. 배열에서 동일한 인형 두 개가 연속으로 있으면 인형을 제거해준다.
def solution(board, moves):
answer = 0
bucket=[]
for i in moves:
for j in range(len(board)):
num=board[j][i-1]
if num!=0: #0이면 인형이 아니기 때문에 0이 아닐 때만 고려해준다.
bucket.append(num)
board[j][i-1]=0 #인형을 뽑은 상태이기 때문에 없다는 것을 나타내기 위해 0을 대입하여준다.
if len(bucket)>=2: #연속된 인형이 두 개일 때, 제거가 가능하기에 배열의 크기가 2 이상일 때만 고려해준다.
if bucket[-1]==bucket[-2]:
bucket.pop()
bucket.pop()
answer+=2
break
return answer
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스]불량 사용자 (0) | 2023.01.17 |
---|---|
[프로그래머스]신규 아이디 추천 (0) | 2023.01.17 |
[프로그래머스]키패드 누르기 (0) | 2023.01.15 |
[프로그래머스]소수찾기 (1) | 2023.01.15 |
[프로그래머스]베스트앨범 (0) | 2023.01.15 |