Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 도커
- github
- grafana
- Spring
- 레디스
- F-Lab
- 데이터구조
- redis
- 멘토링
- Flutter
- nGrinder
- 성능테스트
- 플러터
- 자바백엔드
- 백엔드
- 자바
- java
- EC2
- error
- 로드밸런서
- 부트캠프
- backend
- 에프랩
- AWS
- 트러블슈팅
- FLAB
- 알고리즘
- 코딩테스트
- 후기
- MySQL
Archives
- Today
- Total
민스씨의 일취일장
Java | 백준 2667 단지번호 붙이기 본문
반응형
백준 2667 단지번호 붙이기 문제에 대한 글입니다.
백준 2667 단지번호 붙이기
내용
문제 내용은 아래 링크에서 확인할 수 있습니다.
풀이 전략
전형적인 DFS 문제이다. 단지 내 집들의 수를 마지막에 정렬해서 출력해야 하기 때문에 정렬이 간단한 List를 이용했다.
전체코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class baekjoon2667 {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static int N, count;
static char[][] map;
static int[] varX = {1, 0, -1, 0};
static int[] varY = {0, 1, 0, -1};
static List<Integer> list = new ArrayList<>();
static void input() throws IOException{
N = Integer.parseInt(br.readLine());
map = new char[N][N];
for(int i=0; i<N; i++){
String str = br.readLine();
for(int j=0; j<N; j++){
map[i][j] = str.charAt(j);
}
}
}
static void execute(){
int numOfDanji =0;
for(int i=0; i<N; i++){
for(int j=0; j<N; j++){
if(map[i][j]=='1'){
count=0;
dfs(i, j);
numOfDanji++;
list.add(count);
count=0;
}
}
}
System.out.println(numOfDanji);
}
static void dfs(int x, int y){
if(map[x][y]=='0') return;
count++;
map[x][y] = '0';
for(int i=0; i<4; i++){
int newX = x + varX[i];
int newY = y + varY[i];
if(newX<0 || newY<0 || newX>=N || newY>=N) continue;
if(map[newX][newY]=='0') continue;
dfs(newX, newY);
}
}
public static void main(String[] args) throws IOException {
input();
execute();
Collections.sort(list);
for(int n : list){
System.out.println(n);
}
}
}
728x90
반응형
'Data Structure & Algorithm > Java' 카테고리의 다른 글
Java | 백준 11057 오르막 수 (0) | 2024.02.09 |
---|---|
Java | 백준 11724 연결 요소의 개수 (0) | 2024.02.08 |
Java | 백준 26169 세 번 이내에 사과를 먹자 문제풀이 및 분석 (0) | 2024.02.08 |
Java | 백준 1388 바닥 장식 문제풀이 및 분석 (0) | 2024.02.07 |
Java | 백준 13300 방배정 풀이 전략 기록 (0) | 2023.08.09 |