본문 바로가기

백준 사이트 코딩 문제

(23)
백준 16235번: 나무 재테크 (C++) 문제 링크 : https://www.acmicpc.net/problem/16235 단순 구현 문제입니다. 1. map 이차원 배열을 vector 데이터 타입으로 선언해 공간마다 벡터를 갖게 합니다. 2. 봄과 여름을 동시에 처리합니다. sorting 된 벡터에서 나이가 낮은 나무부터 양분을 주며 나이를 증가시킵니다. 양분이 부족하면 그 후부터의 나무들을 모두 죽이며 양분으로 만듭니다. 3. 가을에 map 이차원 배열을 탐색하며 5배수의 나무가 있으면 주변에 모두 나이 1 나무를 번식시킵니다. 4. 겨울에 다시 양분을 합해줍니다. 5. k번이 지나면 남은 나무의 개수를 구해줍니다. #include #include #include using namespace std; int n, m, k; int feed_..
백준 16234번: 인구 이동 (C++) 문제 링크 : https://www.acmicpc.net/problem/16234 단순한 bfs 문제였습니다. 1. 한 좌표에서 bfs로 이차원 배열을 탐색합니다. 탐색 되지 않은 좌표들은 다시 bfs를 돌려줍니다. (다음 노드가 L 이상 R 이하인 부분만 탐색하는 bfs.) 2. 한 좌표에서 bfs를 돌려 탐색 된 부분들은 한 연합입니다. 연합나라들의 수를 분배합니다.(bfs를 돌릴 때 vector에 각 좌표를 저장해두면 쉽게 수를 분배할 수 있습니다. 3. 한 연합 안에서 사람 수들이 모두 같지 않으면 결국 이동을 해야 합니다. 4. 이동할 필요가 없으면 종료해줍니다. #include #include #include using namespace std; int n, L, R; int people[52..
백준 15686번: 치킨 배달 (C++) 문제 링크 : https://www.acmicpc.net/problem/15686 단순한 브루트 포스 문제였습니다. 1. 입력받을 때 집과 치킨집 모두 vector로 저장합니다. (vector에 저장함으로써 위치를 모두 탐색하지 않아도 됩니다) 2. DFS로 m개를 고를 수 있는 모든 경우의 수를 구합니다. 3. DFS로 m개를 고를 때마다 치킨 거리를 계산하여 줍니다. 4. 치킨 거리 중 가장 작은 값이 정답입니다. #include #include #include using namespace std; int n, m; int map[52][52]; vector store; //치킨집들 vector house; //가정집들 vector choice; // m개 고른 치킨집들 int calc() //m개를..