Blue___
코딩배우는 학생🌎
Blue___
전체 방문자
오늘
어제
  • 코딩배우는 학생🧀 (242)
    • Algorithms (145)
      • BOJ[Java] (107)
      • Programmers[Java] (32)
      • Coding_Contest (3)
    • Web (22)
      • .NET Core C# (2)
      • Java (1)
      • Oracle SQL (7)
      • Web-ProJect (3)
      • Error처리 (1)
      • Web지식 (4)
      • Javascript (1)
      • Vue (3)
    • Git (4)
    • Java_beginner(Repl.it) (55)
      • Auto-Graded-Course(AP CS A) (54)
    • 프로젝트 직딩일기 (3)
    • Hanyang_Assignment (0)
    • 이모저모 (4)
      • 잡담 (1)
      • 2021 오픈소스 컨트리뷰터 아카데미 (1)
      • DDD - 6기! (1)
    • 북리뷰 (1)
      • 리팩토링 2판 (1)
      • 클린코드 (0)

블로그 메뉴

  • 🐰GITHUB
  • ☘️포트폴리오
  • 🌸MBC개발_투표 2022
  • 🍭MBC_APP

공지사항

인기 글

태그

  • AP CS A
  • 코딩
  • 자바
  • Java
  • Bakjoon
  • auto-graded course
  • coding
  • java basic
  • repl.it
  • algorithm
  • 코딩배우는 학생
  • programmers
  • 레플릿
  • 코딩배우는학생
  • 알고리즘
  • 프로그래밍
  • REPL
  • 프로그래머스
  • 백준
  • Java tutorial

최근 댓글

최근 글

티스토리

hELLO
Blue___

코딩배우는 학생🌎

[백준/10709번] 기상캐스터(JOI 2015)[Java]
Algorithms/BOJ[Java]

[백준/10709번] 기상캐스터(JOI 2015)[Java]

2019. 12. 17. 22:35

문제

JOI시는 남북방향이 H 킬로미터, 동서방향이 W 킬로미터인 직사각형 모양이다. JOI시는 가로와 세로의 길이가 1킬로미터인 H × W 개의 작은 구역들로 나뉘어 있다. 북쪽으로부터 i 번째, 서쪽으로부터 j 번째에 있는 구역을 (i, j) 로 표시한다.

각 구역의 하늘에는 구름이 있을 수도, 없을 수도 있다. 모든 구름은 1분이 지날 때마다 1킬로미터씩 동쪽으로 이동한다. 오늘은 날씨가 정말 좋기 때문에 JOI시의 외부에서 구름이 이동해 오는 경우는 없다.

지금 각 구역의 하늘에 구름이 있는지 없는지를 알고 있다. 기상청에서 일하고 있는 여러분은 각 구역에 대해서 지금부터 몇 분뒤 처음으로 하늘에 구름이 오는지를 예측하는 일을 맡았다.

각 구역에 대해서 지금부터 몇 분뒤 처음으로 하늘에 구름이 오는지를 구하여라.

입력

입력은 1 + H 행으로 주어진다.

첫 번째 행에는 정수 H, W (1 ≦ H ≦ 100, 1 ≦ W ≦ 100) 가 공백을 사이에 주고 주어진다. 이것은 JOI시가 H × W 개의 작은 구역으로 나뉘어 있다는 것을 의미한다.

이어진 H 개의 행의 i번째 행 (1 ≦ i ≦ H) 에는 W문자의 문자열이 주어진다. W 개의 문자 중 j번째 문자 (1 ≦ j ≦ W) 는, 구역 (i, j) 에 지금 구름이 떠 있는지 아닌지를 나타낸다. 구름이 있는 경우에는 영어 소문자 'c' 가, 구름이 없는 경우에는 문자 '.' 가 주어진다.

출력

출력은 H 행으로, 각 행에는 공백으로 구분된 W 개의 정수를 출력한다. 출력의 i 번째 행 j 번째 정수 (1 ≦ i ≦ H, 1 ≦ j ≦ W) 는, 지금부터 몇 분후에 처음으로 구역 (i, j) 에 구름이 뜨는지를 표시한다. 단, 처음부터 구역 (i, j) 에 구름이 떠 있었던 경우에는 0을, 몇 분이 지나도 구름이 뜨지 않을 경우에는 -1을 출력한다.

힌트

입출력 예제 1에서는, JOI시가 3 × 4 개의 작은 구역으로 나뉘어 있다. 지금 JOI시의 구름 상황은 아래와 같다. 그림의 위쪽이 북쪽이다.

1분 간격으로 구름은 다음과 같이 움직인다.

 


풀이

반복문을 이용하면 쉽게 풀 수 있는 문제. 다만 for문이나 while문을 많이 사용할 경우 시간초과나 런타임에러가 발생하기 때문에 이에 유의해서 풀어준다. cnt라는 변수를 선언해서 c가 나올때마다 초기화 시켜주고 같은 '.'이 등장하더라도 cnt에 따라 구름이 오는 여부를 판단할 수 있도록 해준다.ㅇㅅㅇ

 

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
import java.util.*;
    
    class Main {
          public static void main(String args[]) {
              Scanner sc=new Scanner(System.in);
              int H=sc.nextInt();
              int W=sc.nextInt();
              
              int cnt=0;
              for(int i=0;i<H;i++) {
                  String input=sc.next();
                  for(int j=0;j<W;j++) {                      
                          if(input.charAt(j)=='.'&&cnt==0) {
                              System.out.print(-1+" ");
                          }
                          else if(input.charAt(j)=='c') {
                              System.out.print(0+" ");
                              cnt=1;
                          }
                          else if(input.charAt(j)=='.'&& cnt!=0) {
                              System.out.print(cnt+" ");
                              cnt++;
                          }                      
          }
                  System.out.println();
                  cnt=0;
          }
          }
    }
 
 
 

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

 

10709번: 기상캐스터

문제 JOI시는 남북방향이 H 킬로미터, 동서방향이 W 킬로미터인 직사각형 모양이다. JOI시는 가로와 세로의 길이가 1킬로미터인 H × W 개의 작은 구역들로 나뉘어 있다. 북쪽으로부터 i 번째, 서쪽으로부터 j 번째에 있는 구역을 (i, j) 로 표시한다. 각 구역의 하늘에는 구름이 있을 수도, 없을 수도 있다. 모든 구름은 1분이 지날 때마다 1킬로미터씩 동쪽으로 이동한다. 오늘은 날씨가 정말 좋기 때문에 JOI시의 외부에서 구름이 이동해 오는 경우

www.acmicpc.net

 

반응형
저작자표시 (새창열림)

'Algorithms > BOJ[Java]' 카테고리의 다른 글

[백준/2676번] 라스칼 삼각형(2011 Greater New York Programming Contest )[Java]  (0) 2019.12.20
[백준/7326번] Number Steps (Tehran Site 2000)[Java]  (0) 2019.12.17
[백준/3034번] 앵그리 창영(COCI 2006/2007) [Java]  (0) 2019.12.17
[백준/2822번] 점수 계산(COCI 2011/2012) [Java]  (0) 2019.12.14
[백준/2525번] 오븐 시계(한국정보올림피아드)[Java]  (0) 2019.12.14
    'Algorithms/BOJ[Java]' 카테고리의 다른 글
    • [백준/2676번] 라스칼 삼각형(2011 Greater New York Programming Contest )[Java]
    • [백준/7326번] Number Steps (Tehran Site 2000)[Java]
    • [백준/3034번] 앵그리 창영(COCI 2006/2007) [Java]
    • [백준/2822번] 점수 계산(COCI 2011/2012) [Java]
    Blue___
    Blue___
    완전 연소한 불은 재를 남기지않는다 : 코딩배우는학생 🌎

    티스토리툴바