Algorithm 38

[python] 백준 7569번: 토마토(BFS)

# 7569 토마토 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline from collections import deque move = [(0,0,1), (0,0,-1), (1,0,0), (0,1,0), (-1,0,0), (0,-1,0)] M, N, H = map(int, input().split()) graph = [[list(map(int, i..

Algorithm 2023.02.23

[python] 백준 2293번: 동전1(DP)

# 2293 동전1 https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline n, k = map(int, input().split()) coins = [] for _ in range(n): coins.append(int(input())) dp = [0] * (k + 1) dp[0] = 1 for i in coins: for j in range(i, k+1): if j - i >=..

Algorithm 2023.02.18

[python] 백준 12865번: 평범한 배낭(DP)

# 12865 평범한 배낭 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline N, K = map(int, input().split()) bag = [(0,0)] # 인덱스 0자리 차지하기 for _ in range(N): W, V = map(int, input().split()) bag.append((W,..

Algorithm 2023.02.18

[python] 백준 12904번: A와 B(Greedy)

# 12904 A와 B https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline S = list(map(str, input().strip())) T = list(map(str, input().strip())) while len(S) != len(T): if T[-1] == 'A': T.pop() elif T[-1] == 'B': T.pop(..

Algorithm 2023.02.16

[python] 백준 11501번: 주식(Greedy)

# 11501 주식 https://www.acmicpc.net/problem/11501 11501번: 주식 입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타 www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline T = int(input()) # 테스트 케이스 for _ in range(T): day = int(input()) # 날 price = list(map(int, input().split())) benefit = 0 while True: if len(price) == 0: break # [..

Algorithm 2023.02.16

[python] 백준 16236번: 아기 상어(BFS)

# 16236 아기 상어 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline from collections import deque N = int(input()) graph = [list(map(int, input().split())) for _ in range(N)] baby_shark = [] # 먹을 수 있는 물고기가 1마리라면, 그 물고기를 먹으러 간다. # ..

Algorithm 2023.02.15

[python] 백준 11060번: 점프 점프(DP)

# 11060 점프 점프 https://www.acmicpc.net/problem/11060 11060번: 점프 점프 재환이가 1×N 크기의 미로에 갇혀있다. 미로는 1×1 크기의 칸으로 이루어져 있고, 각 칸에는 정수가 하나 쓰여 있다. i번째 칸에 쓰여 있는 수를 Ai라고 했을 때, 재환이는 Ai이하만큼 오른쪽으로 www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline N = int(input()) jump_list = list(map(int, input().split())) dp = [-1] * N dp[0] = 0 for current in range(0, N-1): if dp[current] == -1: continue for next_step ..

Algorithm 2023.02.15

[python] 백준 7576번: 토마토(BFS)

# 7576 토마토 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline from collections import deque M, N = map(int, input().split()) boxes = [list(map(int, input().split())) for _ in range(N)] dx, dy = [0,0,-1,1], [-1,1,0,0] queue..

Algorithm 2023.02.14

[python] 백준 17086번: 아기 상어2(BFS)

# 17086 아기 상어2 https://www.acmicpc.net/problem/17086 17086번: 아기 상어 2 첫째 줄에 공간의 크기 N과 M(2 ≤ N, M ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 공간의 상태가 주어지며, 0은 빈 칸, 1은 아기 상어가 있는 칸이다. 빈 칸과 상어의 수가 각각 한 개 이상인 입력만 www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline from collections import deque N, M = map(int, input().split()) graph = [list(map(int, input().split())) for _ in range(N)] # 상 우상 우 우하 하 좌하 좌 좌상 dx =..

Algorithm 2023.02.13

[python] 백준 17404번: RGB거리2(DP)

# 17404 RGB거리2 https://www.acmicpc.net/problem/17404 17404번: RGB거리 2 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline N = int(input()) house = [list(map(int, input().split())) for _ in range(N)] INF = sys.maxsize answer = INF for i in range(3): dp = [[INF, INF, INF] ..

Algorithm 2023.02.10
728x90