본문 바로가기

파이썬 풀이16

[python] 2606번 - 바이러스 문제 파이썬 풀이 이 문제는 1번부터 연결되어있는 모든 노드를 탐색하는 문제이다. dfs와 bfs 내용 공부를 할 때 전체 탐색에 있어서는 dfs를 사용한다는 내용이 떠올라 dfs를 적용시켜 문제를 풀었다. 앞에 1260번 문제에서 이미 기본적인 dfs와 bfs를 구현했던 터라 코드 내용을 조금만 바꾸면 돼서 쉽게 풀 수 있었다. import sys input = sys.stdin.readline e = int(input().rstrip()) v = int(input().rstrip()) graph = [[0]*(e+1) for _ in range(e+1)] visited = [0] *(e+1) def dfs(node) : visited[node] = 1 for i in range(1, e+1) : if.. 2021. 12. 7.
[python] 1260번 - DFS와 BFS 문제 파이썬 풀이 이 문제는 기본적인 dfs, bfs를 구현하여 결과를 출력하는 문제이다. 우선 그래프는 인접 행렬 방식으로 구현을 하였다. 각종 변수 초기화 n, m, v = map(int, input().rstrip().split()) graph = [[0]*(n+1) for _ in range(n+1)] visited_bfs = [0] * (n+1) visited_dfs = [0] * (n+1) graph에서 n+1을 한 이유는 인덱스는 0부터 시작이어서 1부터 시작하는 숫자와 인덱스를 매칭 시키기 위해 1개를 더 생성한 것이다. visited배열들은 해당 인덱스에 해당하는 숫자를 방문했는지 여부를 기록할 리스트이다. (방문 x : 0, 방문 o : 1) 즉 예를 들어 2라는 숫자의 노드를 방문했다.. 2021. 12. 7.
[python] 11047번 - 동전 0 문제 파이썬 문제 풀이 동전의 개수를 최소로 하기 위해서는 가장 비싼 동전으로 최대한 바꾸고, 나머지에 대해 그다음 비싼 동전으로 바꿔가면서 나머지가 0이 되도록 하는 방법을 사용한다. import sys input = sys.stdin.readline N, K = list(map(int, input().rstrip().split())) coin = [] for i in range(N) : coin.append(int(input().rstrip())) coin.reverse() count = 0 for i in coin: if K == 0 : break count += (K // i) K %= i print(count) 가장 비싼 동전부터 접근하기 위해 오름차순으로 입력받은 동전을 reverse해줘 내림.. 2021. 11. 24.
[python] 13305번 - 주유소 문제 파이썬 풀이 기름 값의 최소 비용을 구하는 문제이다. 최소 비용을 저장해두는 변수를 하나 선언한 뒤 이보다 작은 기름 값이 나오면 최소 비용을 갱신한다. 따라서 최소 비용이 갱신되기 전까지는 이전까지의 최소 비용을 이용해 이동을 하고 새로운 최소 비용이 갱신되면 해당 비용으로 이동을 진행하면 된다. import sys from typing import Mapping input = sys.stdin.readline N = int(input().rstrip()) road_length = list(map(int, input().rstrip().split())) oil_price = list(map(int, input().rstrip().split())) result = 0 min_price = oil_p.. 2021. 11. 24.