백준

t = int(input()) stairs = [0] d = [0 for _ in range(t+1)] for _ in range(t): stairs.append(int(input())) for i in range(1, t+1): if i
s = int(input()) n = 0 num = 1 result = 0 while(True): result += num if result > s: break num += 1 n += 1 print(n) 1부터 순서대로 더해 나가다가 n보다 커지면 멈춘다! 마지막 더해지는 값만 알아서 조절하면 되므로 신경쓸 게 없음
cmd = list(input()) minus = False first = True # -가 나온 후의 +는 모두 -로 바꾸기 for i in range(len(cmd)): if cmd[i] == "-": minus = True if minus == True: if cmd[i] == "+": cmd[i] = "-" result = "" for i in cmd: # +/- 가 나오면 first를 True로 초기화 if i == "+" or i == "-": first = True result += i # 0이 나왔는데 first가 False라면 0으로 시작하는 숫자가 아니므로 추가 elif i == "0": if first == False: result += i # 이외의 숫자는 그냥 추가 else: fi..
n = list(map(int, input())) half = int(len(n) / 2) if sum(n[:half]) == sum(n[half:]): print("LUCKY") else: print("READY")
n = int(input()) dp = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] # 두 자리 수일 땐 10 9 8 7 6 5 4 3 2 1 더했음 # 세 자리 수일 땐 55 45 36 28 21 15 10 6 3 1 # 네 자리 수일 땐 220 ... # 패턴이 있다. 기존 dp[i-1]을 빼주면 된다. newdp = [0 for i in range(10)] for i in range(3, n+1): for j in range(10): if j == 0: newdp[j] = sum(dp) else: newdp[j] = newdp[j-1] - dp[j-1] dp = newdp[:] # 배열의 깊은 복사 주의하기 ^^ if n == 1: print(10%10007) else: print(su..
n = int(input()) distance = list(map(int, input().split())) oil = list(map(int, input().split())) minOil = oil[0] result = 0 for i in range(len(distance)): if minOil > oil[i]: minOil = oil[i] result += minOil * distance[i] print(result) 간단한 그리디 문제 도시를 거칠때마다 최소 비용 기름 값을 갱신하면서 해당 값으로 계산하면 됨
from collections import deque n, m = map(int, input().split()) # bfs로 풀고 도착하면 바로 break # 갔던 곳 or 갈 수 없는 곳 가면 안됨 ! visited = [[0] * m for i in range(n)] path = [[0, -1], [0, 1], [-1, 0], [1, 0]] # 갈수 있는 경로 graph = [] for _ in range(n): graph.append(list(map(int, input()))) def bfs(graph, start, visited): q = deque([start]) visited[start[0]][start[1]] = 1 while q: v = q.popleft() if v[0] == (n-1) ..
린구
'백준' 태그의 글 목록