본문 바로가기
728x90
반응형

분류 전체보기146

백준 2667 DFS로 구현하려고 하니, n = int(input()) graph = [] for i in range(n): graph.append(list(map(int, input()))) print(graph) def dfs(x, y): if x = n: return False if graph[x][y] == 1: graph[x][y] == 0 dfs(x - 1, y) dfs(x, y - 1) dfs(x + 1, y) dfs(x, y + 1) return True return False result = 0 for i in range(n): for j in range(n): if dfs(i, j) == True: result += 1 print(result) RecursionError가 뜬다. BFS로 구현한 코드.. 2023. 4. 5.
백준 14888 import sys n = int(input()) numbers = list(map(int, input().split())) operators = list(map(int, input().split())) # 덧셈, 뺄셈, 곱셈, 나눗셈 개수 max_result = -sys.maxsize # 최댓값 초기화 min_result = sys.maxsize # 최솟값 초기화 def calculate(expression): # 주어진 수식의 결과를 계산하는 함수 stack = [] for e in expression: if e.isdigit(): stack.append(int(e)) else: b, a = stack.pop(), stack.pop() if e == '+': stack.append(a + b) eli.. 2023. 4. 4.
백준 2661 def is_good_sequence(seq): n = len(seq) for i in range(1, n//2+1): if seq[-i:] == seq[-2*i:-i]: return False return True def generate_good_sequence(n, seq): if not is_good_sequence(seq): return if len(seq) == n: print(''.join(str(x) for x in seq)) exit() for i in range(1, 4): seq.append(i) generate_good_sequence(n, seq) seq.pop() n = int(input()) generate_good_sequence(n, []) 코드 리뷰 1. def is_goo.. 2023. 4. 1.
백준 14889 import itertools n = int(input()) abilities = [list(map(int, input().split())) for _ in range(n)] min_diff = float('inf') # 능력치 차이의 최솟값 for team_a in itertools.combinations(range(n), n//2): team_b = list(set(range(n)) - set(team_a)) # team_a의 집합 차집합 sum_a = sum(abilities[i][j] + abilities[j][i] for i, j in itertools.combinations(team_a, 2)) sum_b = sum(abilities[i][j] + abilities[j][i] for i, j .. 2023. 4. 1.
백준 2798 첫 번째 시도한 코드(실패) import sys n, m = map(int, sys.stdin.readline().split()) c = list(map(int, sys.stdin.readline().split())) result = [] result2 = [] for i in range(n - 2): for j in range(i + 1, n - 1): for k in range(j + 1, n): result.append(sum([c[i], c[j], c[k]])) x = len(result) for i in range(x): result2.append(abs(m - result[i])) index = result2.index(min(result2)) print(result[index]) 반례 예를 .. 2023. 3. 31.
백준 10819 import sys def back_tracking(x): # x가 n개라면 => x == len(temp) # 조건에 맞게 수를 더해준다. if x == n: answer.append(sum(abs(m[temp[i + 1]] - m[temp[i]]) for i in range(n - 1))) return # 반복문을 통해 idx를 temp에 저장 for i in range(n): if i not in temp: temp.append(i) back_tracking(x + 1) # 백 트래킹 temp.pop() n = int(sys.stdin.readline()) m = list(map(int, sys.stdin.readline().split())) answer = [] temp = [] back_trac.. 2023. 3. 31.
728x90
반응형