PS/BOJ

    [백준] 23288. 🎲주사위 굴리기 2 (파이썬)

    문제 주사위 굴리기2 🎲주사위의 이동에서 획득한 점수의 합을 구해보자. 시간 제한 2초 메모리 제한 1024MB 지도의 크기 N x M 주사위 존재, 각 면에는 1 ~ 6까지의 수 중 하나가 써 있음. 주사위 한 면의 크기와 지도 한 칸의 크기는 같다. 초기 상태 주사위는 지도 위 (1, 1) 위치에 놓여 있다. 주사위는 윗면이 1, 오른쪽 면이 3인 상태로 놓여 있다. 주사위의 이동 이동 방향으로 한 칸 굴러간다 / 이동 방향에 칸이 없다면, 이동 방향을 반대 방향으로 전환 도착한 칸의 점수를 획득한다. 주사위의 아랫면에 있는 정수 A와 주사위가 있는 칸에 적힌 정수 B를 비교하여 다음 이동 방향을 결정한다. A B : 이동 방향을 시계 방향으..

    [백준] 21609. 상어 중학교 (파이썬)

    문제 상어 중학교 오토 플레이가 모두 끝났을 때 획득한 점수의 합을 구해보자. 시간 제한 1초 (추가 시간 없음) 메모리 제한 1024MB 오토 플레이란? 상어 중학교 코딩 동아리에서 만든 게임이다. 공간의 크기 N x N 블록의 종류 : 검은색(-1), 무지개색(0), 일반 블록(M가지 색상, 1~M 사이 자연수로 표현) 인접한 칸 : 상하좌우로 접해 있는 경우를 지칭 블록 그룹이란? 연결된 블록의 집합 일반 블록을 적어도 하나 이상 포함 일반 블록의 색은 모두 같아야 함 검은색 블록은 포함시키지 말 것 블록의 수는 2개 이상 모두 인접해 있어야 함 게임의 오토 플레이 기능 블록 그룹들 중, 크기 > 무지개 블록의 수 > 기준 블록의 행 > 기존 블록의 열 기준으로 큰 값을 지닌 블록 그룹을 선택. 1..

    [백준] 16236. 아기 상어 (파이썬)

    문제 아기 상어 아기 상어가 몇 초 동안 엄마 상어에게 도움을 요청하지 않고 물고기를 잡아먹을 수 있는지 구하는 프로그램을 작성하시오. 시간 제한 2초 메모리 제한 512MB 공간의 크기 N x N 물고기 M마리, 아기상어 1마리 물고기의 크기 1 ~ 6 , 아기 상어의 최초 크기 2 아기 상어의 이동 방법 : 1초에 상하좌우로 인접한 한 칸씩 이동 아기 상어의 이동 조건 아기 상어보다 큰 물고기 : 먹을 수 없으며, 지나갈 수 없다. 아기 상어와 크기가 같은 물고기 : 먹을 수 없으나, 지나갈 수 있다. 아기 상어보다 작은 물고기 : 먹을 수 있으며, 지나갈 수 있다. 먹을 수 있는 물고기들 중 거리가 가장 가까운 > 가장 위쪽 > 가장 왼쪽 기준으로 우선순위를 정한다. 아기 상어가 물고기를 먹는 시간..

    [백준] 17142. 연구소 3 (파이썬)

    문제 연구소 3 연구소의 상태가 주어졌을 때, 모든 빈 칸에 바이러스를 퍼뜨리는 최소 시간을 구해보자. 시간 제한 0.25초 (Python 3 : 1.5초) 메모리 제한 512MB 공간의 크기 N x N 연구소는 빈 칸(0) , 벽(1), 바이러스(2)로 이루어져 있음. 바이러스는 활성, 비활성 두 가지 상태로 존재 연구소의 바이러스 M개를 활성 상태로 변경하려고 함 활성 상태의 바이러스 이동 방법 : 1초에 상하좌우로 인접한 모든 빈 칸으로 동시에 복제. 활성 상태의 바이러스 이동 조건 : 빈 칸(0)을 만난 경우 : 복제 벽(1)을 만난 경우 : 이동 불가 비활성 상태의 바이러스(2)를 만난 경우 : 해당 바이러스가 활성 상태로 변한다. 풀이 어떤 바이러스를 활성 상태로 만들까? 처음에는 바이러스의 ..

    [백준] 14503. 로봇 청소기 (파이썬)

    문제 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 시간 제한 2초 메모리 제한 512MB 공간의 크기 N x M 로봇 청소기는 바라보는 방향이 있다. 0 : 북, 1 : 동, 2 : 남, 3 : 서 각 칸의 상태는 숫자로 표시됨 0 : 빈칸, 1 : 벽(이동 불가) 로봇 청소기의 작동 방식 현재 위치를 청소한다. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향부터 차례대로 인접한 칸을 탐색한다. a. 왼쪽 방향에 아직 청소하지 않은 공간이 존재한다면, 그 방향으로 회전한 다음 한 칸을 전진하고 1번부터 진행한다. b. 왼쪽 방향에 청소할 공간이 없다면, 그 방향으로 회전하고 2번으로 돌아간다. c. 네 방향 모두 청소가 이미 되어있거나 벽인 경우에는, 바라..