본문 바로가기

728x90

재귀함수

(4)
[백준] 1260번 DFS와 BFS [Python] - DFS, BFS 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 문제 더보기 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 B..
[백준] 21736번 헌내기는 친구가 필요해 [Python] - 그래프 이론 $N \times M$ 크기이며 캠퍼스에서 O는 빈 공간, X는 벽, I는 도연이, P는 사람으로 주어질 때, 상하좌우로만 이동가능한 도연이가 몇 명의 사람을 만날 수 있을까? 더보기 문제 2020년에 입학한 헌내기 도연이가 있다. 도연이는 비대면 수업 때문에 학교에 가지 못해 학교에 아는 친구가 없었다. 드디어 대면 수업을 하게 된 도연이는 어서 캠퍼스 내의 사람들과 친해지고 싶다. 도연이가 다니는 대학의 캠퍼스는 $N \times M$ 크기이며 캠퍼스에서 이동하는 방법은 벽이 아닌 상하좌우로 이동하는 것이다. 예를 들어, 도연이가 $(x, y)$에 있다면 이동할 수 있는 곳은 $(x+1, y)$, $(x, y+1)$, $(x-1, y)$, $(x, y-1)$이다. 단, 캠퍼스의 밖으로 이동할 수는 없..
[백준] 2630번 색종이 만들기 [Python] - 재귀 아래 그림처럼 색종이를 가로, 세로를 2등분해서 나누어 각 색깔별 색종이 수를 구함 처음 가로, 세로의 길이는 2의 제곱수이고 같은 색으로만 이루어진 색종이는 더이상 나누지 않는다. 더보기 문제 아래 과 같이 여러개의 정사각형칸들로 이루어진 정사각형 모양의 종이가 주어져 있고, 각 정사각형들은 하얀색으로 칠해져 있거나 파란색으로 칠해져 있다. 주어진 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 색종이를 만들려고 한다. 전체 종이의 크기가 N×N(N=2k, k는 1 이상 7 이하의 자연수) 이라면 종이를 자르는 규칙은 다음과 같다. 전체 종이가 모두 같은 색으로 칠해져 있지 않으면 가로와 세로로 중간 부분을 잘라서 의 I, II, III, IV와 같이 똑같은 크..
[프로그래머스] Lv.2 하노이의 탑 [Python] 하노이 탑에서 원판을 옮기는 과정을 2차원 배열에 [출발 기둥, 도착 기둥]을 처음부터 끝까지 기록해서 반환하는 문제 기둥은 3개$($1,2,3번 기둥이 있음$)$, 원판이 1번 기둥에 n개 주어지고, 3번 기둥으로 옮기는 과정 큰 원판은 밑에 작은 원판은 위에 존재해야하는 규칙이 있음$($큰 원판이 작은 원판 보다 위에 있을 수 없음$)$ 더보기 문제 설명 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있습니다. 게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것입..