백준 2164번 파이썬 deque from collections import deque n=int(input()) arr=deque() for i in range(1,n+1): arr.append(i) while len(arr)>1: arr.popleft() arr.append(arr[0]) arr.popleft() print(arr[0]) 백준 풀이 2022.08.29
백준 2156번 파이썬 dp n=int(input()) arr=[] for i in range(n): arr.append(int(input())) dp=[0]*n dp[0]=arr[0] if n>1: dp[1]=arr[0]+arr[1] for i in range(2,n): dp[i]=max(dp[i-1],dp[i-2]+arr[i],dp[i-3]+arr[i-1]+arr[i]) print(dp[n-1]) 백준 풀이 2022.08.29
백준 10844번 파이썬 n=int(input()) dp=[[0]*10 for x in range(n)] for i in range(1,10): dp[0][i]=1 for i in range(1,n): for j in range(10): if j==0: dp[i][j]=dp[i-1][1] elif j==9: dp[i][j]= dp[i-1][8] else: dp[i][j]= dp[i-1][j-1]+dp[i-1][j+1] print(sum(dp[n-1])%1000000000) 백준 풀이 2022.08.29
백준 1874번 파이썬 (스택) n= int(input()) arr=[] op=[] now=1 flag = True for i in range(n): a=int(input()) while a>=now: arr.append(now) now+=1 op.append("+") if arr[-1]==a: arr.pop() op.append("-") else: flag=False if flag: for i in range(len(op)): print(op[i]) else: print("NO") 백준 풀이 2022.08.28
백준 1912번 파이썬 (백트레킹) n=int(input()) a=list(map(int, input().split())) s=[a[0]] for i in range(n-1): s.append(max(s[i]+a[i+1],a[i+1])) print(max(s)) 백준 풀이 2022.08.28
파이썬 15649번 파이썬 (백트레킹 by dfs) def dfs(): if len(arr)== m: print(" ".join(map(str, arr))) return for i in range(1,n+1): if i in arr: continue arr.append(i) dfs() arr.pop() n,m = map(int,input().split()) arr=[] dfs() 백준 풀이 2022.08.28
백준 1002번 파이썬 t= int(input()) for _ in range(t): x1,y1,r1,x2,y2,r2=map(int,input().split()) d = ((x1-x2)**2+(y1-y2)**2)**(1/2) if d==0 and r1==r2: print(-1) elif abs(r1-r2)==d or r1+r2 == d: print(1) elif abs(r1-r2) 백준 풀이 2022.08.28
백준 1002번 파이썬 t= int(input()) for _ in range(t): x1,y1,r1,x2,y2,r2=map(int,input().split()) d = ((x1-y1)**2+(x2-y2)**2)**(1/2) if x1 == x2 and y1 == y2 and r1 ==r2: print(-1) elif abs(r1-r2)==d or r1+r2 == d: print(1) elif abs(r1-r2) 백준 풀이 2022.08.28
백준 1932번 파이썬 (dp) n=int(input()) a=[] for i in range(n): a.append(list(map(int,input().split()))) for i in range(1,n): for j in range(i+1): if j==0: a[i][j]+=a[i-1][j] elif i==j: a[i][j]+=a[i-1][j-1] else: a[i][j]+=max(a[i-1][j],a[i-1][j-1]) print(max(a[n-1])) 백준 풀이 2022.08.28
백준 10773번 파이썬 (deque) from collections import deque n=int(input()) a=[] arr=deque() for _ in range(n): a.append(int(input())) for i in a: if i==0: arr.pop() else: arr.append(i) print(sum(arr)) 백준 풀이 2022.08.28