백준/문제

21771번: 가희야 거기서 자는 거 아니야

스몰스테핑 2024. 9. 19. 15:59

문제 출처 : https://www.acmicpc.net/problem/21771

 

언어 : Kotlin

 

문제 설명 :

베개와 가희가 방 안에 있습니다. 가희가 베개 위에서 자고 있는지 그렇지 않은지 출력해 주세요.

 

입력 :

첫 번째 줄에 방의 세로 길이 R, 가로 길이 C가 주어집니다.

두 번째 줄에 가희의 세로 길이 Rg, 가로 길이 Cg, 베게의 세로 길이 Rp, 가로 길이 Cp가 주어집니다.

세 번째 줄부터, R+2번째 줄까지, 길이가 C인 문자열이 주어집니다.

주어지는 문자열에 있는 문자는 가희를 나타내는 'G', 베게를 나타내는 'P', 빈 칸을 나타내는 '.' 중 하나입니다.

 

출력 :

가희가 베게 위에서 자고 있다면 1을, 그렇지 않으면 0을 출력합니다.

베개 중의 일부가 가희에 의해서 가려진 상태라면, 가희는 베게 위에서 자고 있습니다.

 

제한 사항 :

  • 시간 제한 : 1초
  • 메모리 제한 : 512MB
  • 11 ≤ R, C ≤ 100
  • 1 ≤ Rg, Rp ≤ R
  • 1 ≤ Cg, Cp ≤ C
  • 가희와 베개는 맵 안에 하나만 있으며, 방과 방 바깥에 걸쳐져 있지 않습니다.
  • 가희나 베개가 완전히 가려진 경우는 주어지지 않습니다.
  • 가희와 베개는 직사각형 형태로 주어지며, 직사각형의 각 변은 가로, 세로와 평행합니다.
  • 가희는 베개 위에서 잘 수도 있고, 아래에서 잘 수도 있습니다.

 

입출력 예 :

입력 출력
11 11
5 4 6 10
....GGGG...
....GGGG...
....GGGG...
.PPPGGGGPPP
.PPPGGGGPPP
.PPPPPPPPPP
.PPPPPPPPPP
.PPPPPPPPPP
.PPPPPPPPPP
...........
...........
1
11 11
11 4 6 10
....GGGG...
....GGGG...
....GGGG...
.PPPPPPPPPP
.PPPPPPPPPP
.PPPPPPPPPP
.PPPPPPPPPP
.PPPPPPPPPP
.PPPPPPPPPP
....GGGG...
....GGGG...
0
11 11
4 5 6 10
.GGGGG.....
.GGGGG.....
.GGGGG.....
.GGGGG.....
...........
PPPPPPPPPP.
PPPPPPPPPP.
PPPPPPPPPP.
PPPPPPPPPP.
PPPPPPPPPP.
PPPPPPPPPP.
0

 

풀이 : 

import java.io.BufferedWriter
import java.io.OutputStreamWriter

fun main() = with(System.`in`.bufferedReader()) {
    val bw = BufferedWriter(OutputStreamWriter(System.out))

    val (r, c) = readLine().split(" ").map { it.toInt() }
    val (rg, cg, rp, cp) = readLine().split(" ").map { it.toInt() }
    var answer = rp * cp

    repeat(r) {
        for (ch in readLine()) {
            if (ch == 'P') answer--
        }
    }

    bw.write("${if (answer != 0) 1 else 0}")
    bw.flush()
    bw.close()
}