본문 바로가기

Bruteforce19

[백준 1182번] 부분수열의 합 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net n, s = map(int,input().split()) # N개의 정수로 이루어진 수열, 부분수열의 원소를 다 더한 값이 S가 되는 경우의 수 data = list(map(int,input().split())) count = 0 visited = [False]*n def dfs(total,index,depth): global count if total == s and depth != 0: count += 1 for i in .. 2023. 10. 20.
[백준 2589번] 보물섬 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net import sys from collections import deque input = sys.stdin.readline dx = [-1,1,0,0] dy = [0,0,-1,1] # L : 육지, W : 바다 max_value = float("-inf") n, m = map(int,input().split()) area = [list(input().rstrip()) for _ in range(n)] def bfs(x,y): global max_value visite.. 2023. 10. 20.
[백준 17136번] 색종이 붙이기 17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크 www.acmicpc.net area = [list(map(int,input().split())) for _ in range(10)] size_count = [0]*5 min_value = float("inf") def check(x,y,n): # n 크기의 색종이를 붙일 수 있는 확인하는 함수 if (x + n - 1) >= 10 or (y + n - 1) >= 10: return False for i in range(n+1): for j in range(n+1): if area[.. 2023. 10. 14.
[백준 12100번] 2048(Easy) - 구현 / 시뮬레이션 / 완전탐색 / 백트래킹 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net # 4x4 크기 보드 # 한번 이동할 때 보드 위에 있는 모든 블록이 상-하-좌-우 중 하나로 이동 # 같은 값을 갖는 두 블록이 충돌하면 합쳐짐 # 한번의 이동에서 합쳐진 블록은 다시 합쳐질 수 X import copy n = int(input()) zone = [list(map(int,input().split())) for _ in range(n)] max_value = -1 # 왼쪽으로 이동시키는 함수 def moveLeft():.. 2023. 10. 7.
[백준 2573번] 빙산 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net from collections import deque import copy # 각 칸의 높이는 자연수로 저장 # 빙산이 아닌 바다는 0으로 저장 # 매년 동서남북에 존재하는 바다의 개수만큼 줄어듦 # 단, 각 칸의 저장된 높이는 0에서 더 줄어들지 X dx = [-1,1,0,0] dy = [0,0,-1,1] n, m = map(int,input().split()) area = [list(map(int,input().split())) for _ in rang.. 2023. 10. 6.
[백준 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.