코딩테스트/BOJ

[BOJ] 10709 기상캐스터 - JAVA

5월._. 2022. 2. 16.
728x90

1. 문제

https://www.acmicpc.net/problem/10709

 

10709번: 기상캐스터

출력은 H 행으로, 각 행에는 공백으로 구분된 W 개의 정수를 출력한다. 출력의 i 번째 행 j 번째 정수 (1 ≦ i ≦ H, 1 ≦ j ≦ W) 는, 지금부터 몇 분후에 처음으로 구역 (i, j) 에 구름이 뜨는지를 표시

www.acmicpc.net


2. 풀이

한줄한줄 입력받을 때마다 cloud를 -1로 초기화했다.

중간에 구름을 만난다면 그 구름 인덱스를 cloud에 저장한다.

구름이 아닌데 cloud가 아직 -1이라면 -1을 출력한다.

구름이 아니고 cloud가 -1이 아니라면 현재 인덱스-cloud를 출력한다. 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class BOJ_10709_기상캐스터 {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(in.readLine());

        int H = Integer.parseInt(st.nextToken());
        int W = Integer.parseInt(st.nextToken());

        StringBuilder sb = new StringBuilder();
        int cloud;
        for(int h=0;h<H;h++){
            String sky = in.readLine();
            cloud = -1;
            for(int w=0;w<W;w++){
                if(sky.charAt(w)=='c') {
                    sb.append("0 ");
                    cloud = w;
                }
                else if(cloud == -1) sb.append(-1).append(" ");
                else sb.append(w-cloud).append(" ");
            }
            sb.append("\n");
        }

        System.out.print(sb.toString().trim());

    }
}

3. 결과

'코딩테스트 > BOJ' 카테고리의 다른 글

[BOJ] 2980 도로와 신호등 - JAVA  (1) 2022.02.16
[BOJ] 1074 Z - JAVA  (0) 2022.02.16
[BOJ] 2527 직사각형 - JAVA  (0) 2022.02.16
[BOJ] 2559 수열 - JAVA  (0) 2022.02.14
[BOJ] 2304 창고 다각형 - JAVA  (0) 2022.02.14

댓글