deo2kim
๋งž์™œํ‹€
deo2kim
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • ๊ฐœ๋ฐœ
    • Infra

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๋ฐ˜์‘ํ˜•
hELLO ยท Designed By ์ •์ƒ์šฐ.
deo2kim
Algorithm Problem/Python

[python] ๋ฐฑ์ค€ - 18428. ๊ฐ์‹œ ํ”ผํ•˜๊ธฐ

[python] ๋ฐฑ์ค€ - 18428. ๊ฐ์‹œ ํ”ผํ•˜๊ธฐ
Algorithm Problem/Python

[python] ๋ฐฑ์ค€ - 18428. ๊ฐ์‹œ ํ”ผํ•˜๊ธฐ

2020. 11. 28. 15:13
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  • S1 | ์™„์ „ํƒ์ƒ‰

N์˜ ๋ฒ”์œ„๊ฐ€ ๋งค์šฐ ์ž‘์œผ๋ฏ€๋กœ ์™„์ „ํƒ์ƒ‰์„ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

๋ฒฝ์„ ์„ธ์šธ ์ˆ˜ ์žˆ๋Š” ๋นˆ ๊ณต๊ฐ„์„ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ•˜๊ณ ,

์ฝค๋น„๋„ค์ด์…˜(3)์„ ํ•œ๋‹ค. ( ๋ฒฝ์„ 3๊ฐœ ์„ธ์›Œ์•ผ ํ•˜๋ฏ€๋กœ )

 

๋ฒฝ์„ ์„ธ์šฐ๋ฉด ๊ฐ์‹œ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

์„ ์ƒ๋‹˜๋ฆฌ์ŠคํŠธ๋„ ๋งŒ๋“ค์–ด์„œ ์ƒํ•˜์ขŒ์šฐ ๊ฐ์‹œ๋ฅผ ํ•œ๋‹ค.

๊ฐ์‹œ๋ฅผ ํ•˜๋˜ ๋„์ค‘ ๋๊นŒ์ง€ ๊ฐ€๊ฑฐ๋‚˜ ๋ฒฝ์„ ๋งŒ๋‚˜๋ฉด ํ•ด๋‹น ๋ฐฉํ–ฅ์˜ ๊ฐ์‹œ๋Š” ๋ฉˆ์ถ”๊ณ 

ํ•™์ƒ์„ ๋งŒ๋‚˜๋ฉด ๊ฐ์‹œ์— ์„ฑ๊ณตํ•˜๋ฏ€๋กœ

๊ทธ ๋ฒฝ์€ ๋‹ค์‹œ ์ฒ ๊ฑฐํ•˜๊ณ  ๋‹ค๋ฅธ ๋ฒฝ์„ ์„ธ์šด๋‹ค.

์„ ์ƒ๋‹˜์ด ๋ชจ๋“  ๋ฐฉํ–ฅ์— ๋Œ€ํ•ด์„œ ๊ฐ์‹œ์— ์‹คํŒจํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

from itertools import combinations as cb


def watch():
    for teacher in teacher_list:
        x, y = teacher
        # ์ƒ
        nx, ny = x, y
        while nx > 0:
            nx -= 1
            if hallway[nx][ny] == 'S':
                return False

            if hallway[nx][ny] == 'O':
                break
        # ํ•˜
        nx, ny = x, y
        while nx < N - 1:
            nx += 1
            if hallway[nx][ny] == 'S':
                return False
            if hallway[nx][ny] == 'O':
                break
        # ์ขŒ
        nx, ny = x, y
        while ny > 0:
            ny -= 1
            if hallway[nx][ny] == 'S':
                return False
            if hallway[nx][ny] == 'O':
                break
        # ์šฐ
        nx, ny = x, y
        while ny < N - 1:
            ny += 1
            if hallway[nx][ny] == 'S':
                return False
            if hallway[nx][ny] == 'O':
                break
    return True


if __name__ == '__main__':
    N = int(input())
    hallway = [input().split() for _ in range(N)]

    empty_list = []
    teacher_list = []
    for i in range(N):
        for j in range(N):
            if hallway[i][j] == 'X':
                empty_list.append((i, j))
            elif hallway[i][j] == 'T':
                teacher_list.append((i, j))

    # ๋ฒฝ 3๊ฐœ ๋ฝ‘๊ธฐ
    for walls in cb(empty_list, 3):

        # ๋ฒฝ ์„ธ์šฐ๊ธฐ
        for wall in walls:
            x, y = wall
            hallway[x][y] = 'O'
        # ๊ฐ์‹œํ•˜๊ธฐ
        if watch():
            print('YES')
            break
        # ๋ฒฝ ํ—ˆ๋ฌผ๊ธฐ
        for wall in walls:
            x, y = wall
            hallway[x][y] = 'X'
    else:
        print('NO')
 

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: BACKJOON ONLINE JUDGE

๋งํฌ: https://www.acmicpc.net/problem/18428

 

18428๋ฒˆ: ๊ฐ์‹œ ํ”ผํ•˜๊ธฐ

NxN ํฌ๊ธฐ์˜ ๋ณต๋„๊ฐ€ ์žˆ๋‹ค. ๋ณต๋„๋Š” 1x1 ํฌ๊ธฐ์˜ ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง€๋ฉฐ, ํŠน์ •ํ•œ ์œ„์น˜์—๋Š” ์„ ์ƒ๋‹˜, ํ•™์ƒ, ํ˜น์€ ์žฅ์• ๋ฌผ์ด ์œ„์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ˜„์žฌ ๋ช‡ ๋ช…์˜ ํ•™์ƒ๋“ค์€ ์ˆ˜์—…์‹œ๊ฐ„์— ๋ชฐ๋ž˜ ๋ณต๋„๋กœ ๋น ์ ธ๋‚˜์™”๋Š”๋ฐ, ๋ณต

www.acmicpc.net

 

 

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Algorithm Problem > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[python] ๋ฐฑ์ค€ - 17140. ์ด์ฐจ์› ๋ฐฐ์—ด๊ณผ ์—ฐ์‚ฐ  (2) 2020.11.30
[python] ๋ฐฑ์ค€ - 10819. ์ฐจ์ด๋ฅผ ์ตœ๋Œ€๋กœ  (0) 2020.11.29
[python] ๋ฐฑ์ค€ - 1916. ์ตœ์†Œ๋น„์šฉ ๊ตฌํ•˜๊ธฐ  (0) 2020.11.27
[python] ๋ฐฑ์ค€ - 2573. ๋น™์‚ฐ  (0) 2020.11.26
[python] ๋ฐฑ์ค€ - 2493. ํƒ‘  (0) 2020.11.25
  • ๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ
  • ๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ
  • ๐Ÿ“•๋ฌธ์ œ ํ™•์ธ
'Algorithm Problem/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [python] ๋ฐฑ์ค€ - 17140. ์ด์ฐจ์› ๋ฐฐ์—ด๊ณผ ์—ฐ์‚ฐ
  • [python] ๋ฐฑ์ค€ - 10819. ์ฐจ์ด๋ฅผ ์ตœ๋Œ€๋กœ
  • [python] ๋ฐฑ์ค€ - 1916. ์ตœ์†Œ๋น„์šฉ ๊ตฌํ•˜๊ธฐ
  • [python] ๋ฐฑ์ค€ - 2573. ๋น™์‚ฐ
deo2kim
deo2kim
์ฝ”๋”ฉ ๊ธฐ๋กํ•˜๊ธฐ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.