큐에는 거리순으로 좌표가 들어온다. 이를 이용해서 해결한 문제이며, 따라서 인접한 점들을 방문할때마다 이전 점들의 거리값(dist)의 값에 1을 더해 갱신한다.dist 배열을 -1로 초기화함으로써 방문 노드와 거리값의 역할을 동시에 수행한다.
bfs함수를 선언하여 점의 좌표를 전달하여 해결하였지만, for문의 반복횟수가 너무 많다고 생각된다. 줄일 수는 있었지만 푸느라 급급해서 효율적인 코드를 짠 건 아닌 것 같다 ㅠㅠbfs 함수를 들어가기 전에 방문할 수 있는 점인지 체크를 하고 그림의 수를 +1 하였으며
출발점이 여러개인 경우, 출발점들을 모두 큐에 넣고 BFS 를 시작하면된다. visit 배열과, dist 배열을 불필요하게 2개선언할 필요 없이 하나의 배열로만 처리할 수 있을지 고민해 볼만하다.dist 배열과 visit 배열을 하나로 묶어 동시에 기능하도록 하고 있다
3차원 배열문제이며, STL pair가 아닌 tuple 헤더파일의 tuple 을 이용해 해결하였다.tuple 을 초기화 하는 방법은 크게 2가지이다.tie(curX, curY, curZ) = cur; : curX, curY, curZ를 요소로 갖는 tuple이 생성된디
visit 배열과 dist 배열을 하나로 묶어 처리하고 싶었으나, 조건이 많이 걸릴수록 머리에서 생각이 꼬여 힘들다 ㅠ이렇게 시작점이 두 종류 인 경우에는 어떻게 해결해야 할까? 첫번째는 불의 거리 배열을 먼저 채우는 것이다. 그렇게 되면 두번째 시작점임 지훈이의 출발
2차원 배열이 아닌 특이하게 1차원 배열을 이용한 bfs 문제이다.주어지는 인덱스가 0과 100000사이인데, 술래는 움직이는 동안 100000을 넘지못한다는 조건이 없다. 하지만, 100000 을 넘는 인덱스에 있다면 어차피 -1 연산만을 해야하기때문에 굳이 고려할
진짜 엄청 틀렸다. 아무리 찾아보고 찾아봐도 오류인 점이 없는데 계속 통과를 못했다..알고보니 좌표축 실수더라.. 전에 bfs 문제들 에서도 몇번 실수한 적이 있는데 이렇게 스노우볼이 될줄 몰랐다..자격이 있는 모든 출발점에 대해 bfs 를 수행하면 된다.정답코드는 유
다른 bfs 문제들과 다르게 8방면 으로 이동가능한 점이 특징이다.불!(https://www.acmicpc.net/problem/4179) 문제와 다르게 최단거리를 바로 출력할 필요 없이, dist 배열을 모두 채우고 목표지점의 dist값 만 출력하면 된다!
적록색약을 가진 사람은 빨간색과 녹색을 동일한 색으로 취급한다. 따라서 적록색약을 가진사람과 갖지 않은 사람을 구별하여 visit배열 을 따로 선언한다!각각의 범위에 bfs 를 돌때마다 선언한 변수에 +1 을 하여 합을 출력하면 해결!
내 코드 정답
내 코드 정답
내 코드 정답
내 코드 정답
내 코드 정답
내 코드 정답
첫번쨰 시도에서 오답이 나오고, 두번째 시도에서는 시간초과가 나왔다. 결과적으로는 실패 ㅠ첫번째 시도에서는 벽을 부쉈는지 안부쉈는지 체크하는 전역변수를 하나 만들어서 bfs의 if 문에서 field가 1 일때 전역변수를 +1 하여 구성하였으나, 실패했다. 두번째 시도에
코드 구현하지 못한 문제이다. 무엇이 문제였을까? 첫번째는 내가 고려한 풀이에 대한 시간복잡도가 너무 커 실패할까봐 이다. 3중 반복문같이 매우 많은 연산이 필요해, 생각한 풀이 방법대신 다른 방법을 찾다가 구현조차 하지 못햇다... 1초 정도라면 약 2천만 의 연산