목록코테 (2)
N
https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net 클래스로 주사위를 굴리는 전체 상황을 만들었다. 우선 전역변수로는 세로, 가로의 크기인 N, M. 상하좌우 이동할 방향을 나타내는 배열 dx, dy. 최대 20 x 20의 크기를 가지는 board를 선언했다. Dice 클래스. 현재 좌표를 나타내는 x, y. 주사위의 상태를 나타내는 dice로, 처음에는 {1, 3, 4, 5, 2, 6}으로 초기화했다. 이동할 방향을 나타내는 d..

BFS를 이용하여 문제를 풀었다. 이중 for문을 사용하여 picture 벡터를 순회하였다. bfs함수를 통해 순회한 위치에는 -1을 넣어 탐색하지 않도록 설정한다. 현재 picture[i][j]가 0이거나 -1이면 무시하도록 하자..! 0, -1이 아니면 영역의 수를 나타내는 number_of_area를 1씩 늘려주고, 현재 picture[i][j] 원소의 개수를 bfs 함수를 통해 세어본다..! bfs(int m, int n, int x, int y, vector& picture, int target) --> m과 n은 그림의 크기, x와 y는 현재 순회하고 있는 인덱스, picture는 그림. 우선 종료조건을 만들어주자..! x ,y 가 0보다 작거나 x, y가 각각 m, n과 같거나, target..