브루트포스

🧩 Problem Solving/[백준]

[백준] 12100 2048(easy) (python 파이썬)

https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 아이디어 1. 구현이 먼저 문제를 보고 N최대가 20이고 이동도 5번 하므로 문제가 말한 그대로 구현하면 되겠다고 생각. 상, 하, 좌, 우 이동 중에 '좌'로 이동하는 것부터 구현하면 나머지도 쉽게 만들 수 있다. 만들수록 변수나 if문이 많아져 다시 밀고 처음부터 작성했다. 너무 많은 변수는 필요 없다. 이건 다른 구현 문제도 마찬가지라고 생각. '이동시킬 블록'과..

🧩 Problem Solving/[백준]

[백준] 14500 테트로미노 (python 파이썬)

https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 아이디어 1. 두 가지로 나눠 생각하면 테트로미노 도형 만들기 종이 위에 올리기 2. 도형 만들기 도형이 회전이나 대칭도 가능하니 dfs를 사용하면 T도형 빼고 전부 다 만들 수 있다. dfs 탐색 깊이를 4까지 설정하면 도형을 확인할 수 있다. T 모양은 따로 함수를 만들어 처리했다. 3. 종이에 도형 놓기 시간제한이나 N, M 크기를 보고 브루트 포스를 사용하기로 결정했다. 각 위치마다 만들어..

🧩 Problem Solving/[백준]

[백준] 1107 리모콘 (python 파이썬)

https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 아이디어 1. 알고리즘 선택 처음 문제를 보고 DP로 풀어야 하나 생각하면서 도저히 모르겠어서 알고리즘 분류를 보니까 그냥 브루트 포스 문제다. 2. 구현 먼저 현재 채널(100)에서 최소값이 나올 수 있는지 확인 이후 0부터 1000000까지 버튼으로 만들 수 있는 채널인지 확인 그 채널 숫자를 만드는데 필요한 버튼 개수 확인 코드 설명 N = int(input()) M = in..

🧩 Problem Solving/[백준]

[백준] 14502 _연구소 (python 파이썬)

https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 풀이 과정 풀이는 3파트로 나누어서 풀었다. 1) 벽세우기 2) 바이러스 감염 3) 안전 영역 구하기 상대적으로 생각하기 쉬운 2)바이러스 감염은 dfs나 bfs를 사용하고 1)벽세우기 파트는 입력값에 N과 M이 작은 것을 보고(최대 8) 브루트포스 방법을 사용하기로 결정. 먼저 지도에서 빈공간들의 좌표를 모아 저장한다. 그 후 파이썬의 combinations를 사용하여 벽의 세워지는 모든 경우의 수를 추출한..

제봉아
'브루트포스' 태그의 글 목록