ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

15558๋ฒˆ: ์ ํ”„ ๊ฒŒ์ž„

์ฒซ์งธ ์ค„์— N๊ณผ k๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N, k ≤ 100,000) ๋‘˜์งธ ์ค„์—๋Š” ์™ผ์ชฝ ์ค„์˜ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. i๋ฒˆ์งธ ๋ฌธ์ž๊ฐ€ 0์ธ ๊ฒฝ์šฐ์—๋Š” ์œ„ํ—˜ํ•œ ์นธ์ด๊ณ , 1์ธ ๊ฒฝ์šฐ์—๋Š” ์•ˆ์ „ํ•œ ์นธ์ด๋‹ค. ์…‹์งธ ์ค„์—๋Š” ์˜ค๋ฅธ์ชฝ ์ค„์˜ ์ •๋ณด๏ฟฝ๏ฟฝ

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ์ง€๋„๊ฐ€ ์ขŒ์ธก, ์šฐ์ธก 2๊ฐœ์˜ ์ค„๋กœ ๋‚˜๋‰˜์–ด ์žˆ๊ณ , 3๊ฐ€์ง€์˜ ๊ฒฝ์šฐ๋กœ ํ˜„์žฌ ์นธ์—์„œ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ํ˜„์žฌ ์นธ์—์„œ ํ•œ ์นธ ์•ž์œผ๋กœ ๊ฐ€๋Š” ๊ฒƒ์ด๊ณ  ๋‘ ๋ฒˆ์งธ๋Š” ํ•œ ์นธ ๋’ค๋กœ ๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋‹ค๋ฅธ ์ค„์—์„œ K์นธ ์•ž์œผ๋กœ ๊ฐ€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•ž์„œ ๋‹ค๋ฃฌ ํ† ๋งˆํ†  ๋ฌธ์ œ์™€ ๊ฐ™์ด, ํ•œ ๋‹จ๊ณ„์—์„œ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

 ํ† ๋งˆํ†  ๋ฌธ์ œ์™€ ๋‹ฌ๋ฆฌ ๋‹ค์Œ๋ฒˆ ์นธ์œผ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋Š”์ง€์™€, 1์ดˆ๊ฐ€ ์ง€๋‚˜๋ฉด ์ด์ „์— ์•ž์—์„œ๋ถ€ํ„ฐ ํ•œ ์นธ์”ฉ ์‚ฌ๋ผ์ง„๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ์— ๋ฐฉ๋ฌธ ๊ฐ€๋Šฅํ•œ ์นธ์˜ ๋ฒ”์œ„๋ฅผ `0 <= y < n`์ด ์•„๋‹Œ,  ํ˜„์žฌ `์ธ๋ฑ์Šค < y < n`๊ณผ ๊ฐ™์ด ์ง„ํ–‰ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin
from collections import deque


def visitable(x, y, idx):
    return idx < y < n and game_map[x][y] and not visited[x][y]


def bfs(start):
    q = deque([start])
    cur_idx = 0
    while q:
        for _ in range(len(q)):
            x, y = q.popleft()
            for next_x, next_y in ((x, y + 1), (x, y - 1), (~x, y + k)):
                if next_y >= n:
                    return 1
                if visitable(next_x, next_y, cur_idx):
                    q.append((next_x, next_y))
                    visited[next_x][next_y] = True
        cur_idx += 1
    return 0


if __name__ == "__main__":
    LEFT, RIGHT = 0, 1
    n, k = map(int, (stdin.readline().split()))
    game_map = [list(map(int, stdin.readline().strip())) for _ in range(2)]
    visited = [[False] * n for _ in range(2)]
    print(bfs([0, 0]))

 ํ˜„์žฌ ์นธ์—์„œ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” 3๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ `(x, y + 1)`, `(x, y - 1)`, `(~x, y + k)`๋กœ ํ‘œํ˜„ํ•˜์˜€๋‹ค. ๋˜ํ•œ ์•ž์˜ ์นธ์ด ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด y์˜ ๋ฒ”์œ„์— ํ˜„์žฌ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜์˜ํ•˜์˜€๋‹ค.

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€