[programmers]クレーン兄抽出ゲーム(Python)


質問する


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

方法

  • 所与の2次元配列を私の理解しやすいフォーマット
  • に変換する
  • moveに従ってバスケットに人形append
  • を追加
    2つの
  • のようなぬいぐるみが重なるとSleing,cnt+=

  • コミットコード

    def solution(board, moves):
    	basket = []
    	cnt = 0
        	# 2차원 배열 변환 후 spaces에 저장
    	spaces = list(map(list, zip(*board)))
    	for space in spaces:
    		space.reverse()
    		while 0 in space:
    			space.remove(0)
            # moves에 따라 인형 basket에 저장
    	for move in moves:
        		# move 값에 해당하는 space에 인형이 없을 경우 예외처리
    		if len(spaces[move - 1]) <= 0:
    			continue
                	# basket에 인형 저장 후 space 인형 삭제
    		basket.append(spaces[move - 1][-1])
    		del spaces[move - 1][-1]
            	# basket에 인형 2개가 겹칠 경우
    		if len(basket) >= 2 and basket[-2] == basket[-1]:
    			basket = basket[:-2]
    			cnt += 2
    	return cnt

    に感銘を与える


    今度の問題は難しいというより、解決の過程が面白い.1級だからそうなんだけど….