본문 바로가기

Algorithm144

[백준] 14503 로봇 청소기 (Python 파이썬) https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 문제 설명 문제에서 주어진 것 처럼, 로봇 청소기가 빈공간을 돌아다니며 청소를 한다. 현재 방향을 기준으로 왼쪽 방향부터 탐색을 시작하며, 방향은 0 = 북 / 1 = 동 / 2 = 남 / 3 = 서쪽을 의미한다. 문제에서 주어진 조건과 상황들을 잘 고려하여 코드를 작성해보자. 풀이 과정 먼저 로봇 청소기의 초기 위치는 무조건 0이며 해당 칸을 청소하게 된다. 청소를 한 칸은 2로 변경하여 청소.. 2021. 10. 19.
[백준] 14502 연구소 (Python 파이썬) https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 문제 설명 N x M 크기로 구성된 연구소에 바이러스가 퍼졌다. 연구소의 각 칸은 0, 1, 2로 구성되어 있으며 0은 빈 칸, 1은 벽, 2은 바이러스 이다. 바이러스는 벽을 뚫고 확장할 수 없으며 상하좌우에 인접한 빈 칸으로만 확장이 가능하다. 위 그림과 같이 N x M 모양의 연구소(행렬)가 주어지며, 3개의 벽(1)을 세워야 한다. 3개의 벽을 세웠을 때, 안전영역의 크기(0의 개수)의 최댓값을 구하면.. 2021. 10. 17.
[백준] 14500 테트로미노 (Python 파이썬) https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 문제 설명 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위.. 2021. 10. 16.
[백준] 14499 주사위 굴리기 (Python 파이썬) https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net 문제 설명 문제에서 맵이 주어지고 맵의 첫 칸(0, 0)에 주사위를 놓는다. 그리고 주사위를 상, 하, 좌, 우 로 굴리게 되는데 주사위와 바닥에 닿는 면은 맵의 숫자로 복사가 된다. 그리고 주사위를 굴렸을 때 주사위 위쪽면의 숫자를 출력해야 한다. 따라서, 주사위 전개도를 생각하며 풀어야 하는 문제이다. 풀이 과정 이 문제를 풀기.. 2021. 10. 15.
[백준] 3190 뱀 (Python 파이썬) https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 문제 설명 뱀 꼬리물기 문제이다. 뱀이 사과를 먹으면 점점 꼬리를 늘려가게 되며 뱀의 머리가 꼬리에 닿거나 벽에 닿으면 끝나는 게임이다. 뱀의 꼬리를 이동시키는 부분을 큐로 구현하는 부분이 핵심이다. 풀이 과정 이 문제는 큐를 이용한 구현 문제로 다음과 같이 접근하였다. ① 먼저 그래프(맵)을 모두 0으로 채워준다. ② 사과 위치는 모두 2로 채워준다. ③ 앞으로 뱀이 차지하고 있는 부분은 1로 채워줄 .. 2021. 10. 15.
[백준] 12100 2048 (Easy) (Python 파이썬) https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 문제 설명 문제에서 주어진 2048 게임을 구현하는 문제이다. 평소의 2048 게임과는 다르게 이동시 새 블록이 추가되지는 않으며 5번 움직였을 때 맵 내의 최대값을 출력하면 된다. 풀이 과정 백트래킹을 이용해 모든 경우의 수에 대해 확인을 해야 하는 브루트포스 문제이다. 움직일 수 있는 방향은 동, 서, 남, 북 4가지 이다. 만약, 동쪽으로 움직인다면 모든 행에 대.. 2021. 10. 14.