practivceAlgorithm 570

[백준][Python] 15831 준표의 조약돌

슬라이딩 윈도우 import sys input = sys.stdin.readline N, B, W = map(int, input().split()) stone = input().rstrip() # 까만색 B개 이하, 흰색은W개 이상 left = 0 w_cnt = 0 b_cnt = 0 max_len = 0 for right in range(N): if stone[right]=='W': w_cnt += 1 else: b_cnt += 1 while b_cnt > B: if stone[left]=='W': w_cnt -= 1 else: b_cnt -= 1 left += 1 if w_cnt>=W: max_len = max(max_len,right-left+1) print(max_len)

[백준][Python] 16926 배열돌리기 1

배열돌리기..tmp 변수에 저장하고 나중에 넣어주는 식. 한번에 한칸씩 돌렸다. 여러개 한번에 가능한가? 가능할지도? import sys input = sys.stdin.readline def rotate(start): #init_tmp top = matrix[start][start] left = matrix[N-start-1][start] bottom = matrix[N-start-1][M-start-1] right = matrix[start][M-start-1] # top for i in range(start+1,M-start): matrix[start][i-1] = matrix[start][i] # left for i in range(N-start-1,start,-1): matrix[i][start..

[백준][Python] 16432 떡장수와 호랑이 : 백트래킹 설계.

checking을 어떻게 할것이냐? 그날 이떡을 먹었었다. 에 대한 체킹. 먹었었다면 굳이 다시 먹을 필요 없다. import sys input = sys.stdin.readline def DFS(cnt,dduks,yesterday): global answer if cnt == N: for d in dduks: print(d) exit() for dduk in days[cnt]: if dduk != yesterday and not ate[cnt][dduk-1]: ate[cnt][dduk-1] = True DFS(cnt+1, dduks + [dduk],dduk) N = int(input()) days = [] answer = [] for _ in range(N): m,*dduk = map(int, inpu..

[SWEA][Python] 4874 Forth

stack단골문제. 후위표기식. 컴퓨터는 후위표기식으로 수식을 표현한다고 한다. 신기방기. for test in range(1, int(input())+1): equation = input().split() flag = 0 stack = [] try: for el in equation: # 숫자면 stack에 밀어넣기. if el.isdigit(): stack.append(int(el)) # 연산자면 숫자 두개꺼내서 연산. elif el == '+': stack.append(stack.pop() + stack.pop()) elif el == '-': tmp = stack.pop() stack.append(stack.pop() - tmp) elif el == '*': tmp = stack.pop() sta..

[SWEA][Python] 4880 토너먼트 카드 게임

재귀구조 잘 잡은건가 싶기도하고 뭔가 줄일수 있을 것 같기도 한데.. 일단 번호랑 숫자 묶어서 깊게 갔다가 둘남으면 가위바위보하고 나와서 승자끼리 가위바위보 시켰음. def rock_siccor_paper(fights): length = len(fights) if length==1: return fights[0] elif length==2: if fights[0][1]==1: if fights[1][1]==1 or fights[1][1]==3: return fights[0] elif fights[1][1]==2: return fights[1] elif fights[0][1]==2: if fights[1][1]==1 or fights[1][1]==2: return fights[0] elif fights[1..