목록문제풀이/SWexpert Academy (36)
말랑한 하루
[ 핵심풀이 ] 0) 별이 있는곳을 찾아 8가지방향에 대해 1씩 증가시켜준다 1) 0인곳을 찾았을 때 cnt를 1개 증가시키고 bfs를 돌려 모든 0인부분을 체크해주고, 0이아닌 숫자가 나온다면 체크후 끝낸다 2) 체크된부분과 지뢰를 제외하고 체크되지 않은 숫자가 나올때마다 cnt를 1개씩 증가시켜준뒤 답을 출력하면 간단하다. [ Java ] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; class ..
[ 핵심풀이 ] 첨에 dfs로 돌려서 시간초과가 나왔기때문에 프로그래머스 등굣길 문제와 같은 Dp개념으로 풀어야 시간초과가 나오지않는다! 4방향이 아닌, 2가지방향(상→하,좌→우)로만 움직이기때문에 계산은 간편하다! 배열중 어느한곳에있다면 상→하, 좌→우로 올 수 있는 두 가지 경우에 대해 2와 5의 개수가 적은값을 가져가면된다. 단, 첫줄의 상→하, 좌→우구간은 방문할 수 있는 경우의수가 1개이므로 비교하지 않아도된다. 1) 0이 나올수 있는 경우는 2와 5가 1개씩 생성될 때이므로 map의 모든숫자에 대해 2와 5로 소인수분해 해준다. 2) 맵이 0인경우는 가지않는다 3) 시작부분은 가지않는다 4) 시작부분에 걸친 세로, 가로줄은 2가지 방향을 비교하지 않고 1가지 방향에 대해서만 처리한다 5) 나머..