문제
https://school.programmers.co.kr/learn/courses/30/lessons/64061
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
주어진 board에서 moves에 맞는 요소를 뽑고, 뽑은 자리는 아무 요소가 없으므로 0으로 처리한다.
그리고 뽑은 요소를 bucket에 넣는데, bucket의 길이가 0이 아니라면, 마지막 요소와 비교하여 터뜨려 주면 된다.
참고로 나는 터뜨린 횟수가 정답인 줄 알고, return 값으로 그 정답의 절반 값을 반환해 줘서 자꾸 틀렸던 것인데, 문제 지문을 읽어보면 터뜨린 횟수가 아닌 터진 인형의 개수를 구하는 문제이다. 따라서 터뜨린 횟수를 구한 다음 * 2 하여 반환하면 문제의 정답을 구할 수 있다.
🖥️ main.py
from typing import List
def solution(board: List[List[int]], moves: List[int]) -> int:
bucket: List[int] = []
answer: int = 0
for catch in moves:
for row in board:
column = catch - 1
if row[column] != 0:
if len(bucket) != 0 and bucket[-1] == row[column]:
bucket.pop()
row[column] = 0
answer += 1
else:
bucket.append(row[column])
row[column] = 0
break
return answer * 2
'Algorithm > Programmers' 카테고리의 다른 글
프로그래머스 Lv1 개인정보 수집 유효기간 (0) | 2023.05.19 |
---|---|
프로그래머스 LV1 햄버거 만들기 (0) | 2023.05.19 |
프로그래머스 LV1 달리기 경주 (0) | 2023.05.19 |
프로그래머스 LV1 둘만의 암호 (0) | 2023.05.19 |
프로그래머스 LV1 대충 만든 자판 (0) | 2023.05.19 |