TIL 2. 데코레이터 패턴, 알고리즘 문제


2021-07-18 TIL


디자인 원칙

  • 클래스는 확장에 대해서는 열려 있어야 하지만 코드 변경에 대해서는 닫혀 있어야 한다.

데코레이터 패턴

데코레이터 패턴은 객체에 추가적인 요건을 동작으로 추가한다. 데코레이터는 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다.

알고리즘

크레인 인형 뽑기 게임

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def solution(board, moves):            
answer = 0
stack = []
height = len(board)
width = len(board[0])

for m in moves:
col_num = m - 1
for w in range(0, height):
selected_v = board[w][col_num]
if selected_v > 0:
stack.append(selected_v)
board[w][col_num] = 0

if len(stack) > 1:
if stack[-1] == stack[-2]:
del stack[-1]
del stack[-1]
answer += 2
break

return answer

Comments