본문 바로가기

728x90
반응형

브루트포스 알고리즘

(3)
[Java] 백준 16173번 문제, 점프왕 쩰리(Small) https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net 게임 조건은 다음과 같다. 1. ‘쩰리’는 가로와 세로의 칸 수가 같은 정사각형의 구역 내부에서만 움직일 수 있다. ‘쩰리’가 정사각형 구역의 외부로 나가는 경우엔 바닥으로 떨어져 즉시 게임에서 패배하게 된다. 2. ‘쩰리’의 출발점은 항상 정사각형의 가장 왼쪽, 가장 위의 칸이다. 다른 출발점에서는 출발하지 않는다. 3. ‘쩰리’가 이동 가능한 방향은 오른쪽과 아래 뿐이다. 위쪽과 왼쪽으로는 이동할..
[Python] 백준 14502번 문제, 연구소 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 연구소 정보(0: 빈 칸, 1: 벽, 2: 바이러스)가 주어지고 벽을 세 개 세웠을 때, 바이러스가 없는 안전한 빈 칸의 갯수를 구하는 문제이다. 브루트포스 알고리즘이기 때문에 벽을 세 개 놓을 수 있는 모든 경우를 돌며 BFS를 통해 바이러스를 전파시킨 다음에 전파가 끝난 다음에 빈 칸의 갯수를 세어 최대값만을 구한다. 벽을 세 개 놓을 수 있는 모든 경우는 [0][j]부터 [N-1][M-1]까지 탐색하면서..
[Python] 백준 9663번 문제, N-Queen https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net N-Queen 문제는 위 그림과 같이 2차원 리스트를 사용해서 마지막 행까지 정상적으로 퀸이 놓여진다면 count++를 하고, 그렇지 않다면 다음 경우를 실행한다. 2차원 리스트로 사용해 하나씩 조건을 따진다면 코드가 복잡해질 것 같아 찾아보던 중에 1차원 리스트에서 인덱스 번호를 행으로, 인덱스 값을 열로 지정해 사용할 수 있었다. 그래서 위 그림과 같이 표현할 수 있다. 그럼 여기서 문제가 발생하는데 좌우로는..

728x90
반응형