알고리즘/백준 문제풀이 52

[백준] 1260 DFS와 BFS 파이썬 풀이

2021.06.21 - [알고리즘/이론] - [알고리즘] DFS 와 BFS 깊이 우선 탐색, 너비 우선 탐색 [알고리즘] DFS 와 BFS 깊이 우선 탐색, 너비 우선 탐색 DFS/ BFS 자료의 검색, 트리나 그래프를 탐색하는 방법 한 노드를 시작으로 인접한 다른 노드를 재귀적으로 탐색해가고 끝까지 탐색하면 다시 위로 올라와서 다음을 탐색하여 검색하는 것. DFS (깊 sso-feeling.tistory.com 코드 #N : 정점의 개수/ M: 간선의 개수/ V: 시작할 정점 N,M,V=map(int,input().split()) matrix=[[0]*(N+1) for i in range(N+1)] for i in range(M): a,b = map(int,input().split()) matrix[a..

[백준] 1021 회전하는 큐 파이썬 풀이 (큐)

코드 from collections import deque def move_left(queue): first = queue.popleft() queue.append(first) def move_right(queue): last = queue.pop() queue.appendleft(last) def find_index(queue, num): index = 0 for index in range(len(queue)): if queue[index] == num: break return index # -------------------------------------------- N,M = map(int, input().split()) queue = deque() find_number = [] for i in ..

[백준] 1874 스택수열 파이썬 풀이 (스택)

코드 num = int(input()) #원소가 몇 개 있는지 original_list = [] # 원래 주어지는 배열 for i in range(num): a = int(input()) #리스트의 원소들 original_list.append(a) # print(original_list) ordered_list = sorted(original_list) #오름차순 정렬한 배열 stack = [] origin_index = 0 #원래 배열과 비교하기 위한 변수 push_pop=[] #연산을 저장하는 배열 for index in range(len(ordered_list)): stack.append(ordered_list[index]) push_pop.append('+') for i in range(len(s..

[백준] 4949 균형잡힌 세상 파이썬 풀이 (스택)

코드 while True: string = input() if string == '.': break stack = [] check = True for i in string: if i == '(' or i == '[': #stack에 넣음 stack.append(i) elif i == ')': if stack and stack[-1] == '(': #stack이 안비었으면 stack.pop() else: check = False break elif i == ']': if stack and stack[-1] == '[': #stack이 안비었으면 stack.pop() else: check = False break if not stack and check: print('yes') else: print('no'..

[백준] 1010 다리 놓기 파이썬 풀이 (정수론 및 조합론)

코드 def factorial(n): num = 1 for i in range(1, n+1): num *=i return num test_case = int(input()) for i in range(test_case): n,m = map(int, input().split()) bridge = factorial(m)/( factorial(n)* factorial(m-n)) print(int(bridge)) 풀이 조합으로 풀면 됨 2021.06.21 - [알고리즘/백준 문제풀이] - [백준] 11050 이항계수 1 파이썬 풀이 (정수론 및 조합론) [백준] 11050 이항계수 1 파이썬 풀이 (정수론 및 조합론) 코드 import math N,K = map(int, input().split()) resul..

[백준] 1934 최소 공배수 파이썬 풀이 (정수론 및 조합론)

코드 num = int(input()) for i in range(num): a,b = map(int,input().split()) A,B = a,b while a!=0: b = b%a a,b = b,a # print(a,b) gcd = b lcm = A * B //b print(lcm) 풀이 2021.06.20 - [알고리즘/백준 문제풀이] - [백준] 2609 최대 공약수와 최소 공배수 파이썬 풀이 [백준] 2609 최대 공약수와 최소 공배수 파이썬 풀이 코드 A,B = map(int, input().split()) # 최대 공약수는 # 둘중에 작은 수와 큰수%작은수와의 최대공약수와 같다 # 작은 수가 0이 될때까지 반복한다. 그럼 큰 수가 최대 공약수이다. a,b = A,B while b!=0: a..

[백준] 10773 제로 파이썬 풀이 (스택)

코드 import sys num= int(sys.stdin.readline()) total = [] max = 0 for i in range(num): money = int(sys.stdin.readline()) if money > 0: total.append(money) max+=money else: max-=total[-1] total.pop() print(max) 풀이 0을 부르지 않으면 total 배열에 부른 수를 append하고 max(총 합)에 부른 수를 더한다 0을 부르면 total에서 마지막에 부른 수를 없앤다. 그리고 max에서도 빼준다.

[백준] 10828 스택 파이썬 풀이 (스택)

코드 import sys stack = [] num= int(sys.stdin.readline()) #input()을 쓰면 시간 초과 for i in range(num): order = sys.stdin.readline().split() #공백 기준으로 띄워서 배열로 들어감 if order[0] == 'push': stack.append(order[1]) elif order[0] == 'top': if len(stack)>0: print(stack[-1]) else: print(-1) elif order[0] == 'size': print(len(stack)) elif order[0] == 'pop': if len(stack)>0: print(stack[-1]) stack.pop(-1) else: pri..