[๋ฐฑ์ค€] 14503. ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ/Python - Gold5

2025. 7. 29. 21:45ยทCoding Test/Algorithms

โ“๋ฌธ์ œ

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

์„ฑ๋Šฅ ์š”์•ฝ

๋ฉ”๋ชจ๋ฆฌ: 109544 KB, ์‹œ๊ฐ„: 92 ms

 
 

๋ฌธ์ œ ์„ค๋ช…

๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ์™€ ๋ฐฉ์˜ ์ƒํƒœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ฒญ์†Œํ•˜๋Š” ์˜์—ญ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ๊ฐ€ ์žˆ๋Š” ๋ฐฉ์€ N×MN×M ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, 1×11×1 ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜• ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ์นธ์€ ๋ฒฝ ๋˜๋Š” ๋นˆ ์นธ์ด๋‹ค. ์ฒญ์†Œ๊ธฐ๋Š” ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ์ด ์žˆ์œผ๋ฉฐ, ์ด ๋ฐฉํ–ฅ์€ ๋™, ์„œ, ๋‚จ, ๋ถ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๋ฐฉ์˜ ๊ฐ ์นธ์€ ์ขŒํ‘œ (r,c)(r,c)๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๊ณ , ๊ฐ€์žฅ ๋ถ์ชฝ ์ค„์˜ ๊ฐ€์žฅ ์„œ์ชฝ ์นธ์˜ ์ขŒํ‘œ๊ฐ€ (0,0)(0,0), ๊ฐ€์žฅ ๋‚จ์ชฝ ์ค„์˜ ๊ฐ€์žฅ ๋™์ชฝ ์นธ์˜ ์ขŒํ‘œ๊ฐ€ (N−1,M−1)(N−1,M−1)์ด๋‹ค. ์ฆ‰, ์ขŒํ‘œ (r,c)(r,c)๋Š” ๋ถ์ชฝ์—์„œ (r+1)(r+1)๋ฒˆ์งธ์— ์žˆ๋Š” ์ค„์˜ ์„œ์ชฝ์—์„œ (c+1)(c+1)๋ฒˆ์งธ ์นธ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์ฒ˜์Œ์— ๋นˆ ์นธ์€ ์ „๋ถ€ ์ฒญ์†Œ๋˜์ง€ ์•Š์€ ์ƒํƒœ์ด๋‹ค.

๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•œ๋‹ค.

  1. ํ˜„์žฌ ์นธ์ด ์•„์ง ์ฒญ์†Œ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ํ˜„์žฌ ์นธ์„ ์ฒญ์†Œํ•œ๋‹ค.
  2. ํ˜„์žฌ ์นธ์˜ ์ฃผ๋ณ€ 44์นธ ์ค‘ ์ฒญ์†Œ๋˜์ง€ ์•Š์€ ๋นˆ ์นธ์ด ์—†๋Š” ๊ฒฝ์šฐ,
    1. ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ์„ ์œ ์ง€ํ•œ ์ฑ„๋กœ ํ•œ ์นธ ํ›„์ง„ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ํ•œ ์นธ ํ›„์ง„ํ•˜๊ณ  1๋ฒˆ์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.
    2. ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ์˜ ๋’ค์ชฝ ์นธ์ด ๋ฒฝ์ด๋ผ ํ›„์ง„ํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ์ž‘๋™์„ ๋ฉˆ์ถ˜๋‹ค.
  3. ํ˜„์žฌ ์นธ์˜ ์ฃผ๋ณ€ 44์นธ ์ค‘ ์ฒญ์†Œ๋˜์ง€ ์•Š์€ ๋นˆ ์นธ์ด ์žˆ๋Š” ๊ฒฝ์šฐ,
    1. ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ 90โˆ˜90โˆ˜ ํšŒ์ „ํ•œ๋‹ค.
    2. ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ์„ ๊ธฐ์ค€์œผ๋กœ ์•ž์ชฝ ์นธ์ด ์ฒญ์†Œ๋˜์ง€ ์•Š์€ ๋นˆ ์นธ์ธ ๊ฒฝ์šฐ ํ•œ ์นธ ์ „์ง„ํ•œ๋‹ค.
    3. 1๋ฒˆ์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.

โœ๐Ÿปํ’€์ด

https://thisismi.tistory.com/entry/%EB%B0%B1%EC%A4%80-14503%EB%B2%88-%EB%A1%9C%EB%B4%87-%EC%B2%AD%EC%86%8C%EA%B8%B0-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%92%80%EC%9D%B4

 

[๋ฐฑ์ค€] 14503๋ฒˆ ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ ํŒŒ์ด์ฌ ํ’€์ด

https://www.acmicpc.net/problem/14503 14503๋ฒˆ: ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ์ฒซ์งธ ์ค„์— ๋ฐฉ์˜ ํฌ๊ธฐ $N$๊ณผ $M$์ด ์ž…๋ ฅ๋œ๋‹ค. $(3 \le N, M \le 50)$โ€Š ๋‘˜์งธ ์ค„์— ์ฒ˜์Œ์— ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ๊ฐ€ ์žˆ๋Š” ์นธ์˜ ์ขŒํ‘œ $(r, c)$์™€ ์ฒ˜์Œ์— ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ๊ฐ€ ๋ฐ”

thisismi.tistory.com

์œ„ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ป์ฝ”๋“œ

import sys

input = sys.stdin.readline

N, M = map(int, input().strip().split())
r, c, d = map(int, input().strip().split())
room = [list(map(int, input().strip().split())) for _ in range(N)]
dr = [-1, 0, 1, 0]
dc = [0, 1, 0, -1]

def checked(r, c):
    for i in range(4):
        nr, nc = r + dr[i], c + dc[i]
        if 0 <= nr < N and 0 <= nc < M and room[nr][nc] == 0:
            return True
    return False

def cleaning(r, c, d):
    global room
    ans = 0

    while True:
        if room[r][c] == 0:
            ans += 1
            room[r][c] = 2

        if checked(r, c):
            for i in range(1, 5):
                dir = (d - i) % 4
                nr, nc = r + dr[dir], c + dc[dir]

                if 0 <= nr < N and 0 <= nc < M and room[nr][nc] == 0:
                    d = dir
                    r, c = nr, nc
                    break

        else:
            nr, nc = r - dr[d], c - dc[d]
            if 0 > nr or nr >= N or 0 > nc or M <= nc or room[nr][nc] == 1:
                return ans
            r, c = nr, nc


print(cleaning(r, c, d))

๐Ÿ“ํ›„๊ธฐ

์ฒ˜์Œ์—๋Š” DFS๋กœ ์ ‘๊ทผํ–ˆ๋‹ค๊ฐ€ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด 1๋ฒˆ์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„๊ฐ€์ง€ ์•Š์•„์„œ while๋ฌธ์œผ๋กœ ๊ทธ๋ƒฅ ๊ตฌํ˜„ํ•˜๋ฉด ๋˜๋Š” ๊ฑธ ๋’ค๋Šฆ๊ฒŒ ์ƒ๊ฐํ–ˆ๋‹ค...

'Coding Test > Algorithms' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 14499. ์ฃผ์‚ฌ์œ„ ๊ตด๋ฆฌ๊ธฐ/Python - Gold4  (4) 2025.08.02
[๋ฐฑ์ค€] 3190. ๋ฑ€/Python - Gold4  (3) 2025.07.30
[๋ฐฑ์ค€] 14891. ํ†ฑ๋‹ˆ๋ฐ”ํ€ด/Python - Gold5  (2) 2025.07.25
[๋ฐฑ์ค€] 14501. ํ‡ด์‚ฌ/Python - Silver3  (1) 2025.07.23
[SWEA] 2819. ๊ฒฉ์žํŒ์˜ ์ˆซ์ž ์ด์–ด๋ถ™์ด๊ธฐ/Python - D4  (0) 2025.07.22
'Coding Test/Algorithms' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 14499. ์ฃผ์‚ฌ์œ„ ๊ตด๋ฆฌ๊ธฐ/Python - Gold4
  • [๋ฐฑ์ค€] 3190. ๋ฑ€/Python - Gold4
  • [๋ฐฑ์ค€] 14891. ํ†ฑ๋‹ˆ๋ฐ”ํ€ด/Python - Gold5
  • [๋ฐฑ์ค€] 14501. ํ‡ด์‚ฌ/Python - Silver3
The Engineer, Lucy
The Engineer, Lucy
  • The Engineer, Lucy
    Growing up for My Future๐Ÿ’•
    The Engineer, Lucy
    • Instagram
    • GitHub
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (171) N
      • Linux (26)
      • Infra (9)
      • Cloud (25)
        • AWS (2)
        • GCP (3)
        • Docker (4)
        • Kubernetes (14)
        • IaC (2)
      • NGINX (1)
      • DevOps (3)
      • Computer Science (17)
        • Data Structure (0)
        • Algorithms (1)
        • Operating System (3)
        • Network (11)
        • Database System (2)
      • Coding Test (85) N
        • Algorithms (77) N
        • SQL (7)
      • ETC (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๊ณต์ง€์‚ฌํ•ญ

  • ๋งํฌ

    • Lucy's Instagram
    • Lucy's GitHub
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋ฆฌ๋ˆ…์Šค
    ๋„์ปค
    docker
    ์ž๋ฐ”
    Shell
    cs ๊ธฐ์ดˆ ์ง€์‹ ์ •๋ฆฌ
    Shell Script
    Baekjoon
    programmers
    ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    ์…ธ ์Šคํฌ๋ฆฝํŠธ
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ
    ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰
    ๋ฐฑ์ค€
    bfs
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค
    Java
    Kubernetes
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณต๋ถ€
    ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ ์ง€์‹
    ๋„คํŠธ์›Œํฌ
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 2๊ธ‰
    Linux
    dfs
    network
    ์˜ค๋ธ”์™„
    K8s
    ์‰˜ ์Šคํฌ๋ฆฝํŠธ
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
The Engineer, Lucy
[๋ฐฑ์ค€] 14503. ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ/Python - Gold5
์ƒ๋‹จ์œผ๋กœ

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