본문 바로가기

백준 8

[백준,Python]1260번 DFS와 BFS(DFS&BFS) 오늘 리뷰하는 문제는 DFS와 BFS의 기초를 공부하기에 좋은 문제라고 생각되는 문제입니다. 백준 1260번 문제를 Python으로 구현해보았습니다. 먼저, 간략하게 문제를 소개하자면, Input으로 정점 개수 N, 간선 개수 M, 시작 정점 V를 입력받고, M만큼 간선 들을 또 입력받고 Output으로 DFS와 BFS의 결과를 출력하는 문제입니다. (자세한 문제 설명은 https://www.acmicpc.net/problem/1260로 확인하시면 됩니다.) 일단 간단하게 개념을 설명하자면, DFS는 깊이 우선 탐색으로 그래프가 있을 때 방문한 점에서 길이 있으면 길이 없을 때까지 계속 방문하고 없으면 처음 루트에서 다시 탐색을 진행하는 알고리즘이고, BFS는 너비 우선 탐색으로 시작 루트 기준으로 가능.. 2020. 8. 11.
[백준,Python]1463번_1로 만들기(DP,Dynamic Programming) 백준 알고리즘(Dynamic Programming 문제)들 중 *1463번_1로 만들기 문제*는 풀어 보면서 느끼는 것도 많고, 굉장히 중요한 문제라고 생각이되어 따로 정리해보는 시간을 가져보려 합니다. (https://www.acmicpc.net/problem/1463) 문제를 쭉 보고 생각을 해보니 N이라는 정수를 입력받았을 때 3가지 연산식을 이용해 N을 나타내는 데 최소값을 구하는 것이니까 min(3i+1, 2i+1,i)로 나타낼 수 있을 것라 생각했다. 그리고 최솟값이 되려면 3으로 나누고 1을 빼주는 것이 무조건 최솟값이므로 (같은 수N을 나타내려면 3i+1과 2i+1 중 당연히 3i+1의 i 값이 더 작을 것이기 때문) while문으로 1이 아닐 때 3으로 나누고 못나눌 경우 1을 뺴주고 나.. 2020. 8. 1.