본문 바로가기
반응형

브루트포스8

[백준] 17142 - 연구소 3 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 17142번: 연구소 3 1. 문제 N*N 크기의 연구소는 빈 칸과 벽 그리고 M개의 활성 바이러스로 이루어져 있다. 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. 어떤 바이러스를 놓았을 때, 바이러스가 퍼지는 최소 시간을 출력한다. 2. 풀이 브루트포스와 BFS를 이용한 문제 풀이 브루트포스를 통해 M개의 바이러스를 선택한다. BFS를 통해 바이러스의 전파 최대 시간을 구한다. 3. 코드 from collections import deque N, M = map(int, input().split()) board = [list(map(int, input().split())) for _ in range(N)] selceted = [.. 2021. 11. 22.
[백준] 17141 - 연구소 2 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 17141번: 연구소 2 1. 문제 N*N 크기의 연구소는 빈 칸과 벽 그리고 M개의 바이러스로 이루어져 있다. 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. 어떤 바이러스를 놓았을 때, 바이러스가 퍼지는 최소 시간을 출력한다. 2. 풀이 브루트포스와 BFS를 이용한 문제 풀이 브루트포스를 통해 M개의 바이러스를 선택한다. BFS를 통해 바이러스의 전파 최대 시간을 구한다. 3. 코드 from collections import deque import sys N, M = map(int, input().split()) arr = [list(map(int, input().split())) for _ in range(N)] chk, v.. 2021. 11. 22.
[백준] 15686 - 치킨 배달 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 15686번: 치킨 배달 1. 문제 N*N 도시의 각 칸은 빈 칸(0), 집(1), 치킨집(2) 중 하나이다. 치킨 거리는 집이 (r1, c1)이고, 치킨집이(r2, c2)일 때, |r1-r2| + |c1-c2| 이다. 최대 M개의 치킨집을 고르고, 도시의 치킨 거리의 최솟값을 출력한다. 2. 풀이 브루트포스를 이용한 문제 풀이 집과 치킨집 위치를 저장한다. 브루트포스를 통해 모든 경우의 유효한 치킨집 조합을 통해 치킨거리의 최솟값을 구한다. 3. 코드 N, M= map(int, input().split()) B = [list(map(int, input().split())) for _ in range(N)] home, chicken, v = [].. 2021. 11. 22.
[백준] 15683 - 감시 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 15683번: 감시 1. 문제 N*M 보드에서 빈 칸(0), CCTV(1~5), 벽(6) 존재한다. CCTV는 5개 존재한다. 1번 한 방향 2번 두 방향(반대) 3번 두 방향(직각) 4번 세 방향 5번 네 방향 CCTV는 CCTV를 통과할 수 있다. CCTV로 감시할 수 없는 사각 지대의 최소 크기를 출력한다. -> 최대 감시 구역 찾기 2. 풀이 브루트포스를 이용한 문제 풀이 CCTV가 가르킬 수 있는 모든 방향을 Dictionary에 저장한다. 초기 빈칸의 개수와 CCTV의 위치와 종류를 배열에 저장한다. CCTV가 감시하는 함수를 만든다. 감시는 상,하,좌,우 네 방향을 고려한다. CCTV가 감시할 때, 빈 칸이거나 CCTV라면 다음 칸으.. 2021. 11. 22.
[백준] 14889 - 스타트와 링크 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 14889번: 스타트와 링크 1. 문제 N명의 사람을 2/N명으로 이루어진 2개의 팀으로 나눈다. 능력치 Sij와 Sji 는 i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치이다. 두 팀의 총능력치 차이가 최소일 때 능력치 차이를 출력한다. 2. 풀이 브루트포스를 이용한 문제 풀이 True 와 False 2개의 팀으로 나눈다. 브루트포스를 통해 모든 선수가 True 팀일 경우와 False팀일 때를 구한다. True 팀이 2/N 이 되면 두 팀의 능력치 차이를 출력한다. 3. 코드 N = int(input()) S = [list(map(int, input().split())) for _ in range(N)] T = [False.. 2021. 11. 22.
[백준] 14888 - 연산자 끼워넣기 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 14888번: 연산자 끼워넣기 1. 문제 N개의 수로 이루어진 배열과 수와 수 사이에 끼어넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 연산자는 수와 수 사이에 하나만 들어간다. 주어진 N개의 수와 N-1개의 연산자를 통해 구할 수 있는 최대값과 최솟값을 출력한다. 2. 풀이 브루트포스를 이용한 문제 풀이 연산자의 개수를 배열로 저장 브루트포스를 통해 주어진 수의 개수를 모두 사용하였을 때 최소 최대 값 저장 3. 코드 N = int(input()) A = list(map(int, input().split())) op = list(map(int, input().spli.. 2021. 11. 22.
[백준] 14502 - 연구소 [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 14502번: 연구소 1. 문제 N*M 크기의 연구소는 빈 칸(0)과 벽(1) 그리고 바이러스(2)로 이루어져있다. 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. 추가로 3개의 벽을 세워 바이러스가 가장 적게 퍼지게 한다. 안정 영역의 최댓값을 출력한다. -> 바이러스가 최소일 때를 구하는 문제 2. 풀이 브루트포스 와 DFS를 이용한 문제 풀이 바이러스의 최솟값을 구한다. 초기 빈 칸의 개수와 바이러스 위치를 저장 브루트포스를 통해 3개의 벽을 세울 수 있는 모든 경우를 고려한다. DFS를 통해 바이러스의 총 개수를 구한다. 안전 영역 = 총 빈칸 - 최소 바이러스 개수 - 벽의 개수(3) 3. 코드 N, M = map(int.. 2021. 11. 22.
[백준] 12100 - 2048 (Easy) [Python(파이썬)] '삼성 SW 역량 테스트' 기출 문제 입니다. 😀 문제 👉 12100번: 2048 (Easy) 1. 문제 N*N 크기의 보드에서 전체 블록을 상하좌우 네 방향 중 하나로 이동시킨다. 이동할 때, 같은 값을 가진 두 블록이 충돌하면 두 블록을 하나로 합치고 값을 2배로 바꾼다. 이미 합쳐진 블록은 다른 블록과 다시 합쳐질 수 없다. 최대 5번 이동해서 만들 수 있는 가장 큰 블록의 값을 출력한다. 2. 풀이 시뮬레이션 과 DFS를 이용한 문제 풀이 보드가 상,하,좌,우로 움직이는 함수 구현 현재 보드에서 최대값을 찾는 함수 구현 DFS 함수 구현 3. 코드 import copy N = int(input()) B = [list(map(int, input().split())) for _ in range(N)].. 2021. 11. 22.
반응형