목록알고리즘 (2)
Seung's Learning Record
난이도 : 실버2 소요시간 : 1시간 9분 사용한 풀이법 : bfs,queue 풀이 과정 1. 테스트 케이스 시작 때 마다 vis[][], bc[][] 배열 0으로 초기화 2. 배추 위치 입력 들어올 때 마다 bc[][]배열 1 삽입 3. for문 돌면서 방문 이력이 없으면서 배추가 있는 곳을 만나면 bfs 실행 => 하나의 배추 군단이 끝나면 bfs종료 후, cnt++됨 4. cnt값 출력 작성 코드 #include #include #include using namespace std; queue Q; int bc[50][50]; int vis[50][50]; int t,n,m,k,x,y; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int d..
재귀와 백트래킹은 개념은 정말 어려울게 없지만 문제를 풀때는 정말 머리를 쥐어짜내게 만드는거같다... 이 두 개념은 정말 문제를 많이 풀어봐야만 감이 잡히는 개념이기에 관련 문제를 많이 풀어보는걸 추천! 재귀 함수 하나의 함수에서 자기 자신을 다시 호출해 작업을 수행하는 알고리즘이다. 어떠한 문제를 재귀로 푼다는 것은 귀납적인 방식으로 문제를 해결하겠다는 것과 같다. 재귀함수를 작성할 땐, 다음과 같은 조건이 지켜져야 한다. 특정 입력에 대해서는 자기 자신을 호출하지 않고 종료되어야 함.(Base condition) 모든 입력은 base condition으로 수렴해야 함. void func(int n){ if(n == 0) return; cout