목록문제풀이/BAEKJOON Online Judge (75)
말랑한 하루
[문제] 간단한 BFS문제입니다. [조건] 가로, 세로, 대각선으로 연결되어 있는 섬의 전체개수를 찾는것 맵을 벗어나지않게 움직이며, 같은색의 섬만 움직일 수 있도록 판별하는것. [해결순서] 가로, 세로, 대각선에대해 움직일수 있는 방법을 파악하는 것이 가장 중요한문제 라고생각합니다. 섬의개수문제는 여러 BFS에서 응용되기때문에 잘 기억하고 있는것을 추천함니다. 각각의 모든섬에서 다른섬으로 갈수있는지 판별하고, 더이상갈수없다면 섬의개수를 하나씩 증가시켜주면됩니다. [부분소스코드] 순서대로 ↑ ↓ ← → ↖ ↗ ↘ ↙ 상 하 좌 우 좌상 우상 우하 좌하 int xX[8] = { 0, 0, -1, 1, -1, 1, 1, -1 }; int yY[8] = { -1, 1, 0, 0, -1, -1, 1, 1 }; ..
[문제] 상하좌우로 연결된 5개의색 R, G, B, P, Y들이 같은색끼리 4개이상 연결되어있다면 사라지게된다. 뿌여는 터지고난후 중력의영향을받아 아래로떨어지고, 위를 반복하게된다. 총 몇번의 연쇄가 일어나는지 구하시오! [조건] 1. 같은색이 4개이상모인 모든색들이 동시에 터지게된다. 2. 터지고난후 남아있는 뿌요들은 바닥을 향해 떨어지고, 빈공간이 없이 쌓이게된다. [해결순서] 전체적으로 BFS를 돌려 같은색이 4개이상인곳은 Check해주고, 경우가 존재할경우 Flag를 통해 뿌요를 내릴 수 있다. 존재하지않을경우 프로그램은 그대로 종료 시키면된다. 뿌요를 내릴때 딱히 방법이생각나지않아 Stack을 사용했다. 맵 전체를 세로기준으로 순차적으로 Stack에 뿌요가 존재할경우 뿌요의 색을 저장해주고 바닥..