File tree Expand file tree Collapse file tree 3 files changed +54
-0
lines changed
Expand file tree Collapse file tree 3 files changed +54
-0
lines changed Original file line number Diff line number Diff line change 1+ def count (lst ):
2+ cnt = ans = 1
3+ for i in range (1 , len (lst )):
4+ if lst [i ]== lst [i - 1 ]:
5+ cnt += 1
6+ ans = max (ans , cnt )
7+ else :
8+ cnt = 1
9+ return ans
10+
11+ def solve (arr ):
12+ mx = 0
13+ for i in range (N - 1 ):
14+ for j in range (0 ,N ):
15+ # 오른쪽 사탕과 교환
16+ arr [i ][j ],arr [i ][j + 1 ]= arr [i ][j + 1 ],arr [i ][j ]
17+ mx = max (mx , count (arr [i ]))
18+ arr [i ][j ],arr [i ][j + 1 ]= arr [i ][j + 1 ],arr [i ][j ]
19+
20+ # 아래쪽 사탕과 교환
21+ arr [i ][j ],arr [i + 1 ][j ]= arr [i + 1 ][j ],arr [i ][j ]
22+ mx = max (mx , count (arr [i ]),count (arr [i + 1 ]))
23+ arr [i ][j ],arr [i + 1 ][j ]= arr [i + 1 ][j ],arr [i ][j ]
24+ return mx
25+
26+ N = int (input ())
27+ arr = [list (input ())+ [0 ] for _ in range (N )]+ [[0 ]* (N + 1 )]
28+ arr_t = list (map (list , zip (* arr )))
29+ ans = max (solve (arr ), solve (arr_t ))
30+ print (ans )
Original file line number Diff line number Diff line change 1+ import sys
2+ n = int (sys .stdin .readline ())
3+ board = [[] for _ in range (n )]
4+
5+ for i in range (n ):
6+ board [i ] = list (map (int ,sys .stdin .readline ().split ()))
7+
8+ # DP 사용
9+ dp = [0 for i in range (n + 1 )]
10+ for i in range (n - 1 ,- 1 ,- 1 ):
11+ if i + board [i ][0 ] > n :
12+ dp [i ] = dp [i + 1 ]
13+ else :
14+ dp [i ] = max (board [i ][1 ] + dp [i + board [i ][0 ]], dp [i + 1 ])
15+
16+ print (dp [0 ])
Original file line number Diff line number Diff line change 1+ def solution (s ):
2+ stack = []
3+ for i in s :
4+ if len (stack ) == 0 : stack .append (i )
5+ elif stack [- 1 ] == i : stack .pop ()
6+ else : stack .append (i )
7+ if len (stack ) == 0 : return 1
8+ else : return 0
You can’t perform that action at this time.
0 commit comments