알고리즘/백준 23

백준-1541-잃어버린 괄호

구현이 문제는 처음에 어떻게 구현해야할지 감이 오지 않아서 다른 사람들의 아이디어를 참고했다.우선 괄호에 영향을 받아서 값이 변화하려면 - 연산에서 괄호에 영향을 받게 된다.그래서 - 를 기준으로 문자열을 나누고, - 기준으로 나눠진 수들은 + 연산으로 이어진 것으로 모두 더한다.이후 그 값들을 순서대로 - 연산해주면 최소 값이 나오는 수식 결과를 도출할 수 있다.코드n = input().split('-')result = []# - 기준으로 분류된 것들은 모두 +로 이어진 것이다.# 이들은 모두 더한다.for i in n: sum = 0 temp = i.split('+') for j in temp: sum += int(j) result.append(sum)# 식의..

알고리즘/백준 2024.06.18

백준-9095-1, 2, 3 더하기

구현1,2,3으로 더할 수 있는 케이스를 숫자별로 나열해보면 아래와 같다.숫자 : 개수 : 케이스1 : 1 : 12 : 2 : 1 1 , 23 : 4 : 1 1 1 , 1 2 , 2 1 , 34 : 7 : 1 1 1 1 , 1 1 2 , 1 2 1 , 2 1 1 , 2 2 , 1 3 , 3 15 : 13 : 1 1 1 1 1 , 1 1 1 2 , 1 1 2 1 , 1 2 1 1 , 2 1 1 1 , 2 2 1 , 2 1 2 , 1 2 2 , 2 3 , 3 2 , 3 1 1 , 1 3 1 , 1 1 3 숫자 4, 5 부터 규칙이 보이기 시작한다.규칙4는 1+2+3 = 7개5는 2+3+4 = 13개 ' ' ' 이를 점화식으로 바꾸..

알고리즘/백준 2024.06.17

백준-2775-부녀회장이 될테야

구현해당 문제는 " a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다" 를 통해서 이전에 사용했던 값을 계속해서 활용해야 하는 문제이다.즉 DP를 활용해서 풀 수 있다.구현을 할 때 아래층의 1~b호까지의 합을 모두 구해야 하는데 , 이것은 동일한 층의 이전 호수에서 값이 구해져있다.이를 활용하고, 자신 호수의 아래층 값만 더해주면 값을 구할 수 있다.K = int(input())for _ in range(K): k = int(input()) n = int(input()) # DP 테이블 d = [[i for i in range(n+1)] for j in range(k+1)] for i in range(1, k+1..

알고리즘/백준 2024.06.03

백준-2606-바이러스

구현 코드import sysfrom collections import dequedef bfs(graph, start, visited): #bfs구현을 위한 큐 선언 queue = deque([start]) #start부터 큐를 선언하면서 넣고 시작 #현재 노드 방문 처리 visited[start] = 1 #큐에 값이 없을 때까지 반복 while queue: temp = queue.popleft() for i in graph[temp]: if visited[i] == 0: # 해당 노드와 인접 노드가 방문한 적이 없을때 queue.append(i) # 큐에 삽입 visited[..

알고리즘/백준 2024.05.03