본문 바로가기
Algorithm Study/BaekJoon (JAVA)

백준 10709_기상캐스터_JAVA

by 창브로 2024. 4. 17.
728x90

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

 

10709번: 기상캐스터

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

www.acmicpc.net

import java.util.*;
import java.io.*;

public class Main {
    static int H, W;
    static int[][] answer;


    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

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

        answer = new int[H][W];

        // answer을 -1로 초기화
        for (int i = 0; i < H; i++) {
            for (int j = 0; j < W; j++) {
                answer[i][j] = -1;
            }
        }

        for (int i = 0; i < H; i++) {
            char[] arr = br.readLine().toCharArray();
            for (int j = 0; j < W; j++) {
                // 현재 위치가 구름이면 구름 카운트를 초기화하고
                // 더 빠른 시간으로 들어가게 설계
                if (arr[j] == 'c') {
                    int count = 0;
                    for (int k = j; k < W; k++) {
                        answer[i][k] = count;
                        count++;
                    }
                }
            }
        }

        for (int i = 0; i < H; i++) {
            StringBuilder sb = new StringBuilder();
            for (int j = 0; j < W; j++) {
                sb.append(answer[i][j] + " ");
            }
            System.out.println(sb);
        }
    }
}

 

회고

- 구현문제에 엄청 약하다는 것을 알게되었다.

- 방법도 생각이 안났고 쉽지 않았다.

- 구현 문제를 자주 풀어야겠다.