https://www.acmicpc.net/problem/10709
10709번: 기상캐스터
출력은 H 행으로, 각 행에는 공백으로 구분된 W 개의 정수를 출력한다. 출력의 i 번째 행 j 번째 정수 (1 ≦ i ≦ H, 1 ≦ j ≦ W) 는, 지금부터 몇 분후에 처음으로 구역 (i, j) 에 구름이 뜨는지를 표시
www.acmicpc.net
해석 및 팁
이 문제는 이차원배열을 사용하여 먼저 구름의 정보를 입력받은 후 구름이 존재하는 위치를 0, 나머지를 -1로 다른 배열에 정보를 저장합니다. 그 후 반복문을 통해 0이 등장하면 count를 통해 구름의 정보를 저장하고 count를 초기화시켜 주면 됩니다.
Java 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int h = sc.nextInt();
int w = sc.nextInt();
char[][] arr = new char[h][w];
int[][] res = new int[h][w];
for(int i = 0; i < h; i++) {
String str = sc.next();
for(int j = 0; j < w; j++) {
arr[i][j] = str.charAt(j);
if(arr[i][j] == 'c') res[i][j] = 0;
else res[i][j] = -1;
}
}
for(int i = 0; i < h; i++) {
int count = 0;
for(int j = 0; j < w; j++) {
if(res[i][j] == 0) count = 1;
else if(res[i][j] == -1 && count != 0) {
res[i][j] = count;
count++;
}
else count = 0;
}
}
for(int i = 0; i < h; i++) {
for(int j = 0; j < w; j++) System.out.print(res[i][j]+" ");
System.out.println("");
}
}
}
'백준' 카테고리의 다른 글
백준 2343 기타 레슨(Java) (0) | 2023.02.21 |
---|---|
백준 5555 반지(Java) (0) | 2023.02.21 |
백준 2303 숫자 게임(Java) (1) | 2023.02.21 |
백준 4659 비밀번호 발음하기(Java) (0) | 2023.02.20 |
백준 1495 기타리스트(Java) (0) | 2023.02.20 |