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. 이전 1 다음