목록전체 글 (159)
Priceless

그래프 탐색은 너무 가혹합니다.. 어제는 DFS를 통해서 문제를 풀었다면 오늘 문제는 BFS를 사용하여 푸는 문제다 BFS는 큐를 사용해야 하기 때문에 나이트의 이동이 저장된 배열, 방문 여부 배열, 방문할 큐, 방문 가능한 방향을 가진 배열 총 4가지 구조체를 사용하여 문제를 풀어야 한다 나이트의 이동이 저장된 배열에는 나이트가 가능한 방향 만큼 한 번씩 이동하고 이동한 자리에는 이동한 횟수가 저장된다 과정을 반복하여 목표 자리에 도착했을 때 도착할 때까지 이동한 횟수를 출력한다 큐에는 방문할 좌표가 저장되어 있으며 저장한 후에는 pop을 통해 빼는 방식이다 // baekjoon 7562 #include #include #include #include using namespace std; // code..

어제 코테 스터디에서 DFS와 BFS에 대해 공부한 후 혼자서 풀어보는 첫 문제 DFS 와 BFS 너무 어렵습니다.. 개념은 이해가 가지만 정작 코드로 짤 때 빼먹는 부분도 많고, 변수도 신중히 써야하고 아직 코딩 경험이 부족한가 봅니다 제 부족한 지식을 채워준 아래 블로그를 참고 했습니다 [백준] 1012. 유기농 배추 풀이 (C++) (tistory.com) 테스트 케이스가 한 번인 경우에는 상관 없지만 테스트 케이스가 두 번 이상일 때는 입력 매핑 값도 두 번 받지만 방문 여부를 나타내는 배열도 전부 false로 바꿔놓아야 하는 것을 잊으면 안된다! 그리고 dfs는 일단 재귀로 구현하는 것이 아직까진 쉽다 물론 재귀 자체도 익숙하지 않아 애를 많이 먹긴 하지만.. 그리고 2차원 이상의 배열을 사용해..

입력 횟수 만큼 거리와 비용을 입력 받은 후 가장 적은 거리거나 가장 적은 비용일 때의 경우의 수를 구한다 처음에는 단순히 합을 구한 후 최소 값이 몇 개인지 확인하면 될 줄 알았다 그 결과 바로 실패.. 사실 아직도 왜 틀렸는지 완전히 이해하진 못했다 아마 예시에서는 100의 배수로만 되어 있어서 단순하지 않은 조건이 있는 듯하다 int main(){ init(); int n ; cin >> n; int c, d; int min = 20000; int count = 0; for(int i = 0; i > c >> d; if(min > c + d){ min = c + d; count = 1; } else if (min == c + d){ count++; } } cout > n..