Problem Solving/Baekjoon
-
[백준] 1149번 문제 (RGB거리) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 12. 27. 14:45
https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net import sys input = sys.stdin.readline n = int(input()) rgb = [list(map(int, input().split())) for _ in range(n)] dp = [[0] * 3 for _ in range(n)] dp[0][0] = rgb[0][0] dp[0][1] = rgb[0][1] dp[0][2] = rgb[0][2] fo..
-
[백준] 14226번 문제 (이모티콘) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 10. 14. 14:05
https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만 www.acmicpc.net from collections import deque s = int(input()) v = [[False] * (s + 1) for _ in range(s + 1)] q = deque() q.append([1, 0, 0]) v[1][0] = True while q: screen, clipboard, count = q.popleft() if screen == s: print(count) break i..
-
[백준] 13549번 문제 (숨바꼭질 3) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 10. 14. 13:58
https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net from collections import deque import sys input = sys.stdin.readline n, k = map(int, input().split()) visited = [False] * 100001 q = deque() q.append([n, 0]) min_count = sys.maxsize while q: cur, count = q..
-
[백준] 13913번 문제 (숨바꼭질 4) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 10. 14. 13:55
https://www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net from collections import deque, defaultdict import sys input = sys.stdin.readline n, k = map(int, input().split()) visited = [False] * 100001 path = defaultdict(list) q = deque() q.append([n, 0]) while q: ..
-
[백준] 12851번 문제 (숨바꼭질 2) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 10. 14. 13:49
https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net from collections import deque, defaultdict import sys input = sys.stdin.readline n, k = map(int, input().split()) visited = [False] * 100001 counted = defaultdict(int) q = deque() q.append([n, 0]) while..
-
[백준] 1743번 문제 (음식물 피하기) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 10. 14. 13:38
https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net from collections import deque import sys input = sys.stdin.readline n, m, k = map(int, input().split()) mtx = [[0] * m for _ in range(n)] visited = [[False] * m for _ in range(n)] for _ in range(k): r..
-
[백준] 14719번 문제 (빗물) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 10. 14. 13:21
https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net import sys input = sys.stdin.readline h, w = map(int, input().split()) block = list(map(int, input().split())) result = 0 for i in range(1, w - 1): left = max(block[:i]) right = max(block[i + 1:]) m = min(left, ri..
-
[백준] 14888번 문제 (연산자 끼워넣기) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 10. 14. 13:11
https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net from itertools import permutations import sys t = int(input()) nums = list(map(int, input().split())) count = list(map(int, input().split())) operators = ["pls", "min", "mul", "div"] arr = [] ..
-
[백준] 1753번 문제 (최단경로) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 10. 12. 11:40
https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. www.acmicpc.net import heapq import sys from collections import defaultdict input = sys.stdin.readline n, m = map(int, input().split()) graph = defaultdict(list) distances = [sys.maxsize] * (n + 1) start = int(input()) for _..