본문 바로가기
728x90

Python/백준47

백준 2048 (Easy) [12100] Python 코드 + 해설 문제 이해하기2048 게임은 4×4 크기의 보드에서 숫자 블록을 이동시키며 즐기는 게임이다. 하지만 이번 문제에서는 보드의 크기가 N×N (1 ≤ N ≤ 20)으로 주어지고, 최대 5번의 이동으로 만들 수 있는 가장 큰 블록의 값을 찾아야 한다.게임 규칙 정리상하좌우 네 방향으로 보드의 모든 블록을 한꺼번에 이동시킬 수 있다.같은 숫자를 가진 두 블록이 충돌하면 하나로 합쳐진다.한 번의 이동에서 이미 합쳐진 블록은 다시 합쳐질 수 없다.최대 5번 이동하여 가장 큰 블록의 값을 구해야 한다.해결 방법: DFS로 모든 경우의 수 탐색하기이 문제는 모든 가능한 이동 조합을 시도해보는 방법으로 해결할 수 있다. 최대 이동 횟수가 5번이므로, 가능한 이동의 수는 4^5 = 1024가지이다. 따라서 DFS(깊이 우.. 2024. 10. 22.
백준 구슬 탈출 2 [13460] Python 코드 + 해설 문제 설명구슬 탈출은 빨간 구슬을 구멍에 넣는 것이 목표인 게임이다. 직사각형 보드에 빨간 구슬과 파란 구슬이 각각 하나씩 놓여 있으며, 보드를 기울여 구슬들을 움직일 수 있다. 중요한 점은 파란 구슬은 구멍에 들어가면 안 되고, 빨간 구슬만 구멍에 빠져야 한다. 보드를 왼쪽, 오른쪽, 위, 아래로 기울일 수 있으며, 한 번 기울일 때마다 구슬들은 그 방향으로 모두 이동할 수 있을 만큼 이동한다. 두 구슬은 동시에 움직이며, 이동 중에 서로 겹칠 수 없다. 목표는 최소 횟수로 빨간 구슬을 구멍에 넣는 것이다. 단, 이동 횟수는 10번을 초과할 수 없다. 그렇다면 어떻게 이 문제를 해결할 수 있을까?해결 방법: BFS를 활용한 상태 탐색이 문제는 구슬들의 모든 가능한 상태를 탐색하여 최소 횟수로 빨간 구슬.. 2024. 10. 21.
728x90