알고리즘 24

백준-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

BFS와 DFS

이것이 코딩테스트다 교재를 기반으로 학습하고 정리한 내용입니다. DFSBFS동작 원리스택큐구현 방법재귀큐 자료구조DFS그래프의 깊은 부분을 우선저긍로 탐색하는 알고리즘으로 최대한 멀리 있는 노드를 우선으로 탐색 DFS의 동작 과정DFS는 스택 자료구조를 활용하고, 재귀를 통해 구현할 수 있다.탐색 시작 노드를 스택에 삽입하고 방문 처리스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 스택에 넣고 방문처리한다. 이때 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다.재귀함수를 통해서 2번과정이 불가할때 까지 반복BFS가까운 노드부터 탐색하는 알고리즘 BFS의 동작 과정큐 자료구조를 활용해서 구현할 수 있다.탐색 시작 노드를 큐에 삽입하고 방문 처리큐에서 노드를 꺼내 해당..