목록브루트포스 알고리즘 (3)
기록방
👉 문제링크 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 🔸 문제 분석 🔸 N x N 게임 판에서 2048을 수행한다. 5번 수행했을 때 최대값을 출력한다. 🔸 문제 풀이 🔸 2048게임 규칙에 따라 구현하면 되는 문제이다. 이동 방향에 따라 모든 칸의 숫자가 이동한다. 같은 숫자는 합쳐지고, 같은 회차에서 더이상 합쳐지지 않는다. 먼저 움직인 숫자가 먼저 합쳐진다. 최대값을 찾기위해 5회 게임 횟수의 모든 경우의 수를 확인한다. 풀이는 DFS로 탐색하였다. 🔸 코드 🔸 impo..
👉 문제링크 27172번: 수 나누기 게임 《보드게임컵》을 준비하다 지친 은하는 보드게임컵 참가자들을 경기장에 몰아넣고 결투를 시키는 게임 《수 나누기 게임》을 만들었습니다. 《수 나누기 게임》의 규칙은 다음과 같습니다. www.acmicpc.net 🔸 문제 분석 🔸 최대 10만개의 서로 다른 수가 적힌 카드가 있다. 이때 수는 1~100만 사이의 정수이다. 카드들을 서로 결투를 벌여서 나누어 떨어지면, 나누는 수는 +1, 나누어진 수는 -1 점을 받는다. 모든 카드들을 결투시켜 최종 점수를 출력한다. 🔸 문제 풀이 🔸 N이 10만이므로 O(NlogN)로 비교하면, 100억번으로 제한 시간인 1초를 초과하게 된다. 에라토스테네스의 체를 활용해서 소수가 아닌, 카드 숫자의 배수 인덱스만 확인해서 결투를 진..
👉 문제링크 1747번: 소수&팰린드롬 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, www.acmicpc.net 🔸 문제 분석 🔸 소수를 구한 후 오름차순으로 팰린드롬을 찾아 출력한다. 🔸 문제 풀이 🔸 N이 100만까지 입력되는데, 여유있게 1000만까지 소수를 구한다. 팰린드롬은 수를 char배열로 변환한 뒤 투포인터로 판단한다. 🔸 코드 🔸 import java.io.*; public class Main { public static void main(String[] args) throws IOException { Bu..