1012번 질문 있습니다!
263
녕뇽
작성한 질문수 8
0
#include<bits/stdc++.h>
using namespace std;
int a[51][51], visited[51][51], t, m, n, k, x, y;
const int dy[] = {-1, 0, 1, 0};
const int dx[] = {0, 1, 0, -1};
void dfs(int y, int x) {
visited[y][x] = 1;
for(int i=0; i<4; i++) {
int ny = y + dy[i];
int nx = x + dx[i];
if(ny<0 || ny>=n || nx<0 || ny>=m) continue;
if(!a[ny][nx]) continue;
if(visited[ny][nx]) continue;
dfs(ny, nx);
}
return;
}
int main() {
cin >> t;
while(t--) {
fill(&a[0][0], &a[0][0] + 51 * 51, 0);
fill(&visited[0][0], &visited[0][0] + 51 * 51, 0);
int cnt = 0;
cin >> m >> n >> k;
for(int i=0; i<k; i++) {
cin >> x >> y;
a[y][x] = 1;
}
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
if(a[i][j] == 1 && visited[i][j] == 0) {
dfs(i,j);cnt++;
}
}
}
cout << cnt << '\n';
}
return 0;
}
if(!a[ny][nx]) continue;
if(visited[ny][nx]) continue;이렇게 했을 때 주어진 테스트 케이스는 정답이 나오거든요? 백준 사이트에선 오답이 나오더라구요 선생님이 올려주신 코드랑 차이점이 뭔지 궁금합니다.
답변 1
0
안녕하세요 ㅎㅎ 제가 주석을 좀 달아봤는데요. 참고 부탁드립니다.
#include<bits/stdc++.h>
using namespace std;
int a[51][51], visited[51][51], t, m, n, k, x, y;
// good
const int dy[] = {-1, 0, 1, 0};
const int dx[] = {0, 1, 0, -1};
void dfs(int y, int x) {
// good
visited[y][x] = 1;
for(int i=0; i<4; i++) {
// good
int ny = y + dy[i];
int nx = x + dx[i];
//이부분을 실수 하셨어요. nx 부분이요.
if(ny<0 || ny>=n || nx<0 || nx>=m) continue;
if(!a[ny][nx]) continue;
if(visited[ny][nx]) continue;
dfs(ny, nx);
}
return;
}
int main() {
cin >> t;
//good
while(t--) {
fill(&a[0][0], &a[0][0] + 51 * 51, 0);
fill(&visited[0][0], &visited[0][0] + 51 * 51, 0);
// good
int cnt = 0;
cin >> m >> n >> k;
// good
for(int i=0; i<k; i++) {
cin >> x >> y;
a[y][x] = 1;
}
// good
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
if(a[i][j] == 1 && visited[i][j] == 0) {
dfs(i,j);cnt++;
}
}
}
cout << cnt << '\n';
}
return 0;
}
1-E질문입니다!
0
517
2
3-L 틀린 부분 피드백 부탁드립니다.
0
819
2
1-A문제 순열재귀함수 질문입니다.
0
381
1
1-A 일곱난쟁이문제입니다
0
455
1
문제 풀 때 방향성에 대해
0
798
1
맥에서 vs code로 실행 관련 질문입니다
0
522
1
17071번 메모리 초과
0
386
1
1-C질문입니다!
0
418
2
2-B BFS 시간초과질문
0
629
2
1-O 13번 라인
0
441
1
6-J 놀이공원 문제 질문
0
381
1
구현관련 질문
0
482
1
강의 교안
0
319
1
실력을 더 올리고나서 강의를 보는 것이 맞을까요?
0
545
1
안녕하세요! 재귀함수에 관해서 질문드립니다
0
535
1
1-K
0
473
2
3-G번 질문있습니다.
1
473
3
3-C 실행 시간 질문드립니다.
0
493
1
4-A 문제 풀이 질문있습니다.
0
590
2
비트마스킹 연산자 "1의 보수" 영문 표기법
0
435
1
격자탐색 문제에서 BFS 시간복잡도 질문드립니다.
0
334
1
3-O go 함수 질문 드립니다.
1
446
2
4-A 출력 질문
0
303
1
1주차 1-O 질문드립니다
0
255
1





