본문 바로가기

백준온라인저지11

[백준온라인저지] 2178 - 미로탐색 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net import sys n, m = map(int, sys.stdin.readline().split()) v = [ sys.stdin.readline().rstrip() for i in range(n) ] visit = [ [0] * (m) for i in range(n) ] dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] queue = [(0, 0)] visit[0][0] = 1 while queue: x, y.. 2021. 8. 24.
[백준온라인저지] 1260 - DFS와 BFS https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net import sys def dfs(v): print(v, end=' ') visit[v] = 1 for i in range(1, n+1): if visit[i] == 0 and s[v][i] == 1: dfs(i) def bfs(v): queue = [v] visit[v] = 0 while queue: v = queue[0] print(v, end=' ') d.. 2021. 8. 24.
[백준온라인저지] 11057 - 오르막 수 https://www.acmicpc.net/problem/11057 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수 www.acmicpc.net import sys n = int(sys.stdin.readline()) s = [[0] * 10 for i in range(1003)] for i in range(10): s[1][i] = 1 for i in range(2, 1003): for j in range(10): for k in range(j + 1): s[i][j] += s[i - 1][k] pri.. 2021. 8. 24.
[백준온라인저지] 11727 - 2xn 타일링 2 https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net import sys n = int(sys.stdin.readline()) dp = [0, 1, 3] for i in range(3, 1001): dp.append((dp[i-2] * 2) + dp[i-1]) print(dp[n] % 10007) 2021. 8. 24.
[백준온라인저지] 1463 - 1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net import sys n = int(sys.stdin.readline()) dp = [0 for _ in range(n+1)] for i in range(2, n+1): dp[i] = dp[i-1] + 1 if i%2 == 0 and dp[i] > dp[i//2] + 1 : dp[i] = dp[i//2]+1 if i%3 == 0 and dp[i] > dp[i//3] + 1 : dp[i] = dp[i//3] + 1 print(dp[n]) 2021. 8. 24.
[백준온라인저지] 2747 - 피보나치 수 https://www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net import sys n = int(sys.stdin.readline()) fibo_list = [0] * (n+1) def fibo(n): fibo_list[0] = 0 if n > 0: fibo_list[1] = 1 for i in range(2, n+1): fibo_list[i] = fibo_list[i-1] + fibo_list[i-2] fibo(n) prin.. 2021. 8. 24.