본문 바로가기

Algorithm15

백준 1463번 1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입력 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 출력 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. from cmath import inf n = int(input()) cou.. 2022. 6. 19.
백준 18352번 특정 거리의 도시 찾기 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net BFS 개념을 활용하면 풀 수 있는 흔한 문제이다. from collections import deque import sys n, m, k, x = map(int, input().split()) graph = [[] for _ in range(n+1)] for _ in range(m): start, end = map(int, sys.stdin.readline().split()) graph[s.. 2022. 6. 19.
백준 2178번 미로 찾기 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net DFS의 대표격 문제임에도 불구하고 풀 때마다 구현에 오래 걸리는 경우가 많아서 확실히 정리하기 위해 코드와 개념을 다시 적어야겠다 생각해서 적어보았다. 전체 코드 from collections import deque n, m = map(int, input().split()) mat=[] for i in range(n): mat.append(list(map(int, input()))) x_move = [1, -1, 0, 0] y_move = [0, 0, 1, -1] def maze(x, y):.. 2022. 6. 19.