[백준 14888번] 연산자 끼워넣기
14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net # 식의 계산은 우선 순위 무시하고 앞에서부터 진행 # 나눗셈은 몫만 취한다(//) # 음수를 양수로 나눌 때는 음수를 양수로 바꾼 뒤 몫을 취한뒤 음수로 바꾼다 n = int(input()) data = list(map(int,input().split())) # 0 : 덧셈 개수, 1 : 뺄셈 개수, 2 : 곱셈 개수, 3 : 나눗셈 개수 operator_count = list(map(int,input(..
2023. 10. 6.
[백준 15683번] 감시
import copy n, m = map(int,input().split()) area = [list(map(int,input().split())) for _ in range(n)] # 0은 빈 칸, 6은 벽, 1~5는 CCTV def monitor_right(x,y,temp_area): total = 0 for i in range(y+1,m): if temp_area[x][i] == 6: break elif temp_area[x][i] == 0: temp_area[x][i] = -1 total += 1 return total, temp_area def monitor_left(x,y,temp_area): total = 0 for i in range(y-1,-1,-1): if temp_area[x][i] ..
2023. 8. 31.
[백준 17070번] 파이프 옮기기1
17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net n = int(input()) house = [list(map(int,input().split())) for _ in range(n)] visited = [[False]*n for _ in range(n)] dx_r, dy_r = [0,1], [1,1] # 가로일 경우 움직일 수 있는 방향 dx_c, dy_c = [1,1], [0,1] # 세로일 경우 움직일 수 있는 방향 dx_d, dy_d = [0,1,1], [1,0,1] # 대각선일 ..
2023. 8. 28.
[백준 14500번] 테트로미노
14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net n, m = map(int,input().split()) area = [list(map(int,input().split())) for _ in range(n)] visited = [[False]*m for _ in range(n)] dx = [-1,1,0,0] dy = [0,0,-1,1] answer = -1 max_value = max(map(max,area)) def dfs(x,y,movement,value): global answer # 가지치기(나머지 값들..
2023. 8. 25.
[백준 9207번] 페그 솔리테어
9207번: 페그 솔리테어 각 테스트 케이스에 대해서, 핀을 움직여서 남길 수 있는 핀의 최소 개수와 그 개수를 만들기 위해 필요한 최소 이동 횟수를 출력한다. www.acmicpc.net from collections import deque n = int(input()) dx = [-1,1,0,0] dy = [0,0,-1,1] dx_2 = [-2,2,0,0] dy_2 = [0,0,-2,2] result = [] def move(movetime): global min_count, min_movement pin_list = [] for i in range(5): for j in range(9): if area[i][j] == 'o': pin_list.append((i,j)) if len(pin_list) ..
2023. 8. 23.