반응형
https://www.acmicpc.net/problem/2667
이문제랑 같은 문제다. 보자마자 생각이 났지만 3주차는 DP 가 주제였기 때문에 혼란스러웠다.
대체 dp 로 어떻게 푸는 건지 너무 궁금하다. !!!!
유형이 틀린거라면
구름은 알고리즘 문제 만드는 사람 최소 10명을 뽑던지 이쪽 사업은 접는게 나을 것 같다. 너무 심각해..
친구들이랑 같이 성취감있게 문제푸는 건 좋은데 덜 challenging 하고, 난이도가 낮은 점, 테스트케이스나 뭔가 에지케이스를 놓칠 수도 있을 것 같다는 의구심 10%, 시간 제한이나 메모리 제한이 없다는 점에서 10%, 갈수록 난이도가 높아지는 것도 아니고 낮아지는 것도 아닌 들쭉날쭉인 점 10%, 주제조차 맞지 않는 점에서 10% ...
합쳐서 회사에서 직원들도 해커톤처럼 문제내고 검수없이 올리나...? 싶은 그런 챌린지 중이다.
그래도 컨셉 자체는 넘 좋은데 회사 입장에서도 아쉬울 것 같다. 아쉽고 아쉽다!
문제 해설이 함께하는 건 너무 좋다. 난이도만 더 올린다면 참여자가 1000배는 늘듯. 개발자 커뮤니티가 얼마나 많은데... 입소문 타면 금방인데,,,
좋은 점은 보상이 확실하다는 점, 문제 해설 자체 내용은 정말 * 100 좋다는 점, 매일 풀 수 있도록 장려하는게 잘되어있다는 점이다.
(기획은 좋았지만 실제 개발진의 운용이 부족하다)
#include <queue>
#include <iostream>
using namespace std;
#define INF 2147483647
int village[1001][1001];
int visited[1001][1001] = {0,};
int N;
bool Cango(int r, int c){
return (r > 0 && r <= N && c > 0 && c <= N);
}
void BFS(int r, int c, int cost){
int dir[4][2] = {{0,1}, {0, -1}, {1, 0}, {-1,0}};
queue<pair<int , int> > Q;
Q.push(make_pair(r, c));
while(!Q.empty()){
int cury = Q.front().first;
int curx = Q.front().second;
Q.pop();
for(int i = 0; i < 4; i++){
int nextx = curx + dir[i][0];
int nexty = cury + dir[i][1];
if(Cango(nexty, nextx) && visited[nexty][nextx] == 0 && village[nexty][nextx] == 1){
visited[nexty][nextx] = cost;
Q.push(make_pair(nexty, nextx));
}
}
}
}
int main() {
cin >> N ;
for(int i = 1; i <= N;i ++){
for(int j = 1; j <= N; j++){
cin >> village[i][j];
}
}
int cost = 0;
for(int i = 1; i <= N; i++){
for(int j = 1; j <= N; j++){
if(village[i][j] == 1 && visited[i][j] == 0)
BFS(i, j, ++cost);
}
}
cout << cost;
return 0;
}
반응형
'알고리즘 > 구름톤 챌린지' 카테고리의 다른 글
구름톤 챌린지 4주차 후기(2) - 18일차 (0) | 2023.09.06 |
---|---|
구름톤 4주차 후기 (1) (0) | 2023.09.04 |
구름톤 3주차 후기 - 1 (1) | 2023.08.28 |
구름톤 2주차 후기 - 2 (0) | 2023.08.22 |
구름톤 2주차 후기 -1 (0) | 2023.08.21 |