티스토리 뷰

반응형

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


⊙ 문제

⊙ 제한사항

 

⊙ 입출력 예

⊙ 입출력 예 설명


 

⊙ 문제 접근 과정

 

크레인이 이동할 때마다 케이스를 만들어주면 좋겠다고 생각했어요.

 

그리고 크레인 이동마다 2가지를 체크해줬습니다.

 

1. 인형을 만나면 basket에 넣기

2. basket에 같은 인형이 있는지 확인 -> 있으면 제거

 

첫 번째 for문으로 moves에 저장된 크레인 이동을 해주었어요.

그리고 인형을 만날 때까지 들어갑니다.

인형을 만나면 basket에 저장해준 후 인형을 제거해주어요.

 

그다음, basket에 2가지 이상의 인형이 있다면 같은 인형이 있는지 체크해줍니다.

같은 인형이 있다면 제거해주고 제거한 count를 올려주었어요.

 

마지막으로 return count

 


 

⊙ 문제 풀이

 

def solution(board, moves):
    basket = [] #담을 바구니 배열
    count = 0 #지운 개수
    
    #크레인 이동
    for i in moves:
        for j in range(len(board)):
            # 인형을 만나면 바구니에 넣기
            if board[j][i-1]:
                basket.append(board[j][i-1])
                board[j][i-1] = 0
                break
        
        #바구니에 값이 있다면 같은 것이 있는지 확인
        if len(basket)>1:
            # 같은 인형이 있다면 제거 후 count
            if basket[-1]==basket[-2]:
                count+=2
                del basket[-1]
                del basket[-1]
            
    return count

⊙ 마무리

 

 

코테 준비 하자!

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함