본문 바로가기

BFS5

(BOJ, 1525) 퍼즐 로직은 한참 전에 맞춰놓고, 장시간 오답 이유를 못찾아서 헤맸던 문제 1. BFS 시, next state의 visited 체크는 당연하지만, init state를 빼먹음. 2. visited의 값을 0을 non-visited로 하면 안되는 문제임. 한번도 안 바꿔도 정답인 경우와 non-visited가 구분이 안되기 때문. 3. 해시 구현 시 바보같이 key 구할 때 a 훼손시켜놓고 visited[].val에 그걸 그대로 쓰고 있었다.. 4. 퍼즐 인덱스 2->3 과 같은 경우는 걸러야하는 case인데 0~8안에 들어오기만 하면 올바른 전환으로 안일하게 생각함. #define _CRT_SECURE_NO_WARNINGS #include int puzzle; int ans; int dir[4] = { 1,.. 2020. 1. 28.
좀비 보호되어 있는 글 입니다. 2019. 11. 17.
바이러스 보호되어 있는 글 입니다. 2019. 11. 17.
BFS 초기상태 s를 enqueue하는 것으로 시작. while(!QEmpty) { D= Dequeue // 하나 뽑아서 for(All case)//발전 가능한 모든 상태 if(Isavail) // 발전가능하면 Enqueue } Dest 방문 체크는 InQueue, Dequeue 둘 중에 아무데서나 가능함. 방문 체크는 InQueue에서 무조건. 함수 안에서 할 수도 있음 Tip1) 2차원배열 입력 받을 때 %1d 하면 숫자 하나만 읽음 Tip2) 배열을 1,1부터 받으면 배열 외곽은 0으로 static 자동 되므로 가능 Tip3) 미로 문제에서 0, 1을 반전 시키고 싶으면 ^ 연산자 -> static 배열에서 0이 갈수 없는 곳이므로, 예외처리에 유리 Tip4) 방문시 test_case 번호로 하면 방문배열.. 2019. 11. 17.
택시 보호되어 있는 글 입니다. 2019. 11. 16.