[4963] 섬의 개수, c++

2021. 2. 7. 00:00·DEV/PS

[4963] 섬의 개수

www.acmicpc.net/problem/4963

 

4963번: 섬의 개수

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도

www.acmicpc.net

한줄 후기 : 제주도 가고 싶다.

예제가 길어서 짤림

#include <iostream>
#include <string.h>
using namespace std;
int land[51][51]={0};
int visit[51][51]={0};
int dx[8] = {-1,1,0,0,-1,1,-1,1};
int dy[8] = {0,0,-1,1,-1,-1,1,1};
int w,h, cnt=0;
void dfs(int x, int y){
	visit[x][y] = 1;
	for(int i=0; i<8; i++){
		int nx = x+dx[i];
		int ny = y+dy[i];
		if(nx>=0 && nx<h && ny>=0 && ny<w){
			if(!visit[nx][ny] && land[nx][ny]==1){
				dfs(nx,ny);
			}
		}
	}
}
int main(){
	do{
		scanf("%d %d", &w, &h);
		for(int i=0; i<h; i++){
			for(int j=0; j<w; j++){
				scanf("%d", &land[i][j]);
			}
		}
		for(int i=0; i<h; i++){
			for(int j=0; j<w; j++){
				if(!visit[i][j] && land[i][j]==1){
					dfs(i,j);
					cnt++;
				}
			}
		}	
		if(w!=0 || h!=0)	printf("%d\n", cnt);
		memset(visit,0,sizeof(visit));
		memset(land,0,sizeof(land));
		cnt=0;
	}while(w!=0 || h!=0);
	return 0;
}

dfs 돌면서 섬의 개수 체크해 주면 된다. 이때, 대각선도 이동 가능하니까 dx, dy 배열의 방향을 8개로 해줘야한다.

딱히 크게 어려운 점은 없었음.

저작자표시 (새창열림)

'DEV > PS' 카테고리의 다른 글

[9372] 상근이의 여행​, c++  (0) 2021.02.07
[1012] 유기농 배추, c++  (0) 2021.02.07
[1946] 신입 사원, c++  (0) 2021.02.06
[1040] 기타줄, c++  (0) 2021.02.06
[2217] 로프, c++  (0) 2021.02.06
'DEV/PS' 카테고리의 다른 글
  • [9372] 상근이의 여행​, c++
  • [1012] 유기농 배추, c++
  • [1946] 신입 사원, c++
  • [1040] 기타줄, c++
jobchae
jobchae
말하는 감자지만, 코드를 끄적이는 Node.js 백엔드 개발자입니다.
  • jobchae
    JOBCHAE
    jobchae
  • 전체
    오늘
    어제
    • 🚀 JOBCHAE (182)
      • DEV (151)
        • PS (108)
        • Node.js (12)
        • React (3)
        • docker (1)
        • 잡다한 개발 일지 (21)
        • injection (1)
        • JS, TS (3)
        • DB (2)
      • 축구 (0)
      • 일상 (19)
      • 영화 (3)
      • 음악 (8)
  • 블로그 메뉴

    • 💻 Github
    • 🙋🏻 Linkedin
    • 📖 방명록
  • 링크

    • PS Github
  • 공지사항

  • 인기 글

  • 태그

    앱잼
    개발
    nodejs
    알고리즘
    백준
    JavaScript
    위상정렬
    회고
    슬랙
    DFS
    mongoDB
    렛츠락페스티벌
    리액트
    우선순위큐
    슬랙봇
    솝트
    일상
    Nest.js
    node.js
    react
    typescript
    SOPT
    이분탐색
    db
    Express
    BFS
    PS
    DP
    GitHub
    boj
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
jobchae
[4963] 섬의 개수, c++
상단으로

티스토리툴바