Algorithm/Problems_Solving
-
백준(BeakJoon) - 1260_DFS와 BFSAlgorithm/Problems_Solving 2022. 12. 3. 12:43
from collections import deque def DFS(graph, visited, start_node): stack = deque() visited[start_node] = 1 # 스택에 넣는다는 표시 stack.append(start_node) while stack: current_node = stack.pop() print(current_node) visited[current_node] = True # 현재 노드를 방문 처리 for n in graphs[current_node]: if not visited[n]: DFS(graph, visited, n) def BFS(graph, visited, start_node): queue = deque() queue.append(start_nod..
-
백준(BaekJoon) 2606 - 바이러스Algorithm/Problems_Solving 2022. 11. 27. 12:04
# DFS로 문제풀기 computer = int(input()) line = int(input()) # 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수 # [[], [], []] graph = [[] for _ in range(computer+1)] visited = [False] * (computer + 1) # [[], [2,5], [1,3,5], [2], [7], [1,2,6], [5], [4]] for i in range(computer): if i !=0: node, num = map(int, input().split()) graph[node].append(num) graph[num].append(node) def dfs(graph, node, visited): visited[node..
-
프로그래머스(Programmers) LEVEL1 - 같은숫자는싫어Algorithm/Problems_Solving 2022. 11. 15. 16:58
def solution(arr): idx = 0 result = [] while len(arr) != 0: if len(result) == 0: result.append(arr[idx]) arr.pop(idx) else: if result[-1] == arr[idx]: arr.pop(idx) else: result.append(arr[idx]) arr.pop(idx) return arr # 결과 채점 결과 정확성: 71.9 효율성: 0.0 합계: 71.9 / 100.0
-
백준(BaekJoon)_11052_카드구매하기Algorithm/Problems_Solving 2022. 11. 11. 09:24
cardNum = int(input()) profit_table = [0]*(cardNum+1) cardPrice = [0]+list(map(int, input().split())) # print(cardPrice) def solution(): # profit 0개는 항상 0... 1개는 price의 1개와 같기 떄문에 아래처럼 # 2개부터 경우의 수가 생긴다 profit_table[0], profit_table[1] = 0, cardPrice[1] for i in range(2, cardNum+1): for j in range(1, i+1): # j는 항상 i보다 작거나 같다. 따라서 i-j보다 작거나 같다. # profit_table보다 card_price으 값이 먼저 있어야 profit이 계산이 되..
-
백준(BaekJoon) 11407 - 동전Algorithm/Problems_Solving 2022. 10. 22. 12:39
def solution(number, money): result = [] for i in range(number): result.append(int(input())) cnt = 0 for coin in sorted(result, reverse=True): cnt += money // coin money = money % coin return cnt a, b = map(int, input().split()) print(solution(a,b))
-
프로그래머스(Programmers) LEVEL1 - 소수만들기Algorithm/Problems_Solving 2022. 10. 13. 22:33
# 순서가 중요하지 않다 => 즉,서로 다른 인덱스만을 골고름 def is_prime(number): for i in range(2,number//2+1): if number % i == 0: # 소수가 아니다! (약수가있으니까) return False # else를 하지 않는 이유는 첫번째 i로 number를 나눴을 때 !=0 인경우(소수로판명), 하지만 두번째 i로 number를 나눴을 때 i ==0(소수아님으로판명)있을 수도 있기 때문에 for문 다 돌고나서 해줌 return True # 소수다! def solution(nums): result = [] for i in range(len(nums)): for j in range(i+1,len(nums)): for k in range(j+1, len(..