본문 바로가기
반응형

Problem Solving232

[구현 문제] 백준 14503번: 로봇 청소기 https://www.acmicpc.net/problem/14503 x_lim, y_lim = map(int, input().split()) # north 0, east 1, south2, west3 dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] x, y, d = map(int, input().split()) table = [] for i in range(x_lim): table.append(list(map(int,input().split()))) count = 0 while True: # cleaning => 2 if table[x][y]==0: table[x][y]= 2 count+=1 stuck = True for i in range(4): # left direction lx .. 2021. 5. 28.
[다이나믹 프로그래밍] 백준 1932번: 정수 삼각형 https://www.acmicpc.net/problem/1932 그리디로 생각하기 쉽지만 dp문제이다. 매번 큰수를 택하는 식으로 접근하면(그리디) 문제가 풀리지 않는다. n = int(input()) triangle=[] for i in range(n): triangle.append(list(map(int,input().split()))) dp =[triangle[0][0]] for i in range(1,n): # i means depth ndp = [] for j in range(i+1): if j==0 : # left edge pre = dp[j] elif j==i: # right edge pre = dp[j-1] else: pre = max(dp[j-1], dp[j]) ndp.append(pr.. 2021. 5. 27.
[다이나믹 프로그래밍] 백준 1149번: RGB 거리 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net num = int(input()) lst = [] for i in range(num): lst.append(list(map(int, input().split()))) answer =[] def dfs(a,b,c, idx): if idx == num-1: answer.append(min(a,b,c)) return cur = lst[idx+1] na = min(b+cur[0], .. 2021. 5. 27.
[그리디] 백준 13305번: 주유소 https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net import sys n = int(input()) edges = list(map(int, input().split())) nodes = list(map(int, input().split())) answer = 0 min_cost = sys.maxsize for i in range(n-1): min_cost = min(min_cost, nodes[i]) answer += min_cos.. 2021. 5. 26.
[그리디] 백준 1339번: 단어 수학 https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net import collections n = int(input()) dct = collections.defaultdict(int) for i in range(n): s = input() r = 10**(len(s)-1) for j in range(len(s)): dct[s[j]] += r r /= 10 table = [] for key, val in dct.items(): table.append.. 2021. 5. 26.
[그리디] 백준 1946번: 신입 사원 https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net case = int(input()) for i in range(case): candidates = int(input()) lst = [] for j in range(candidates): sco1, sco2 = map(int, input().split()) lst.append([sco1,sco2]) lst = sorted(lst, key=lambda x: x[0]) score.. 2021. 5. 25.
반응형